Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
1

Подскажите, в где у меня ошибка. VBA

15.03.2018, 09:47. Просмотров 458. Ответов 13
Метки нет (Все метки)

Есть код:

Visual Basic
1
2
3
Dim temparray As Range
Set temparray =Range("a1").CurrentRegion
Range(Cells(1, 1), Cells(5, 5)).Value = temparray.Range(Cells(1, 1), Cells(5, 5)).Value
Выдает ошибку 424.

При этом код:

Visual Basic
1
2
3
Dim testarr As Range
Set testarr = Range(Cells(1, 1), Cells(5, 5))
Range(Cells(1, 1), Cells(5, 5)).Value = testarr.Range(Cells(1, 1), Cells(5, 5)).Value
Прекрасно выполняется.

Подскажете, пожалуйста, в чем причина ошибки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2018, 09:47
Ответы с готовыми решениями:

подскажите, где у меня ошибка
Условие: Найдите натуральные числа m от 2 до 1000 такие, чтобы числа m, m+10, m+14 все были...

подскажите где у меня ошибка!
Сколькими способами можно разместить n одинаковых шаров по m различным урнам при условиях: б) Если...

Подскажите пожайлуста как обратиться к listbox который находиться на рабочем листе1 или покажите где у меня ошибка
Sub ListBox2_Щелчок() Cells(4, 3).Value = Sheets("Лист1").ListBox2.Text End Sub

Где у меня ошибка?
Скажите пожалуйста где у меня ошибка? Мне нужно, чтобы правильно выдавало сколько было снято из...

13
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 135
15.03.2018, 09:52 2
Перед каждым Cells нужно указывать название листа.
0
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
15.03.2018, 09:58  [ТС] 3
Т.е. в нижнем коде, в котором все работает надо тоже указывать???? Не понял Вашего ответа, можете пояснить?
0
3234 / 1978 / 637
Регистрация: 02.11.2012
Сообщений: 5,118
15.03.2018, 10:27 4
temparray.Address какой у вас?
опишите словами что вы хотели сделать этой записью?
testarr.Range(Cells(1, 1), Cells(5, 5)).Value, я в ней не вижу смысла пока.
0
6639 / 2656 / 491
Регистрация: 19.10.2012
Сообщений: 8,018
15.03.2018, 10:32 5
Может просто в temparray нет столько ячеек. Имею право гадать
0
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
15.03.2018, 10:35  [ТС] 6
Смысл такой - просто берутся непустые ячейки на листе, а потом они вставляются на другой лист. Как типа copy - paste, но через переменную. Я просто убрал остальную часть кода, там все нормально работает. Address выдает $A$1:$D$69. Да, там 4 столбца, поменял код на Range(Cells(1, 1), Cells(3, 3)).Value = temparray.Range(Cells(1, 1), Cells(3, 3)).Value но все равно не пашет...
0
6639 / 2656 / 491
Регистрация: 19.10.2012
Сообщений: 8,018
15.03.2018, 10:44 7
Цитата Сообщение от Lenin742 Посмотреть сообщение
Я просто убрал остальную часть кода, там все нормально работает.
- может зря? Имею право гадать
0
3234 / 1978 / 637
Регистрация: 02.11.2012
Сообщений: 5,118
15.03.2018, 10:48 8
приложите файл с кодом и все станет понятно. а так только гадать будем.
смысл вставлять в одно и то же место?

Добавлено через 1 минуту
Цитата Сообщение от Lenin742 Посмотреть сообщение
они вставляются на другой лист
где это прописано?
0
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 135
15.03.2018, 10:48 9
Попробуй Set testarr = Range(Sheets("name лист").Cells(1, 1), Sheets("name лист").Cells(5, 5))
0
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
15.03.2018, 10:52  [ТС] 10
Вот весь код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Main2()
Dim orange As Range
Worksheets.Item("main").Select
Set orange = Range("a1").CurrentRegion
orange.Select
Application.Workbooks.Open orange.Cells(1, 1)
ActiveWorkbook.Worksheets.Item(CStr(orange.Cells(1, 2))).Select
Dim temparray As Range
Set temparray = Range("a1").CurrentRegion
ActiveWorkbook.Close
ThisWorkbook.Activate
Worksheets(CStr(orange.Cells(1, 2))).Activate
Cells.Select
Selection.ClearContents
[a1].Value = temparray.Range(Cells(1, 1), Cells(1, 1)).Value
End Sub
0
6639 / 2656 / 491
Регистрация: 19.10.2012
Сообщений: 8,018
15.03.2018, 10:54 11
Visual Basic
1
2
Set temparray = Range("a1").CurrentRegion
ActiveWorkbook.Close
- и как собираетесь теперь работать с тем, что закрыли?
0
3234 / 1978 / 637
Регистрация: 02.11.2012
Сообщений: 5,118
15.03.2018, 10:54 12
предположение1. упс код не видел.
Visual Basic
1
2
3
4
5
6
Sub vvv()
Dim temparray As Range
Set temparray = Sheets("Лист1").Range("a1").CurrentRegion
Range(Cells(1, 1), Cells(5, 5)) = temparray.Resice(5,5).Value
 
End Sub
0
6639 / 2656 / 491
Регистрация: 19.10.2012
Сообщений: 8,018
15.03.2018, 10:54 13
Ну и далее конечно нужно исправлять обращение к ячейкам, как выше уже написали.
0
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
15.03.2018, 11:08  [ТС] 14
Огромное спасибо!!!
Помогло перенос ActiveWorkbook.Close вниз (ну с кое какими правками) и Range(Cells(1, 1), Cells(5, 5)) = temparray.ResiZe(5,5).Value

Вот так тоже заработало Range(Cells(1, 1), Cells(temparray.Rows.Count, temparray.Columns.Count)) = temparray.Value
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2018, 11:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Где у меня ошибка
package Day1.excersices; public class Excer1 { public static void main(String args) { //...

Где у меня ошибка?
Никак не могу найти где допустил ошибку...( задание http://*************/s/6jEs44?dw=1 function...

Где у меня ошибка
Подскажите, где у меня ошибка??не пойму пишет, или нужна скобка или где какой то знак? ЕСЛИ(x<2,5;...

Где у меня ошибка?
помогите, в чем ошибка? .... 1 : print "cколько всего материков?" input a$ if a$="6" then print...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.