Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel ошибка 1004 / 3 сообщений из 3, страница 1 из 1
09.12.2016, 07:02
    #39363095
Guiza
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel ошибка 1004
Приветствую!
написал мини макрос для копирования с одного листа на другой
Столкнулся с ошибкой "Application-defined or object-defined error"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Option Explicit
Sub test()
Dim i, j, s As Integer
Dim x As String
Dim arrXA() As Integer
Dim arrGodi As Variant

arrGodi = Array(25, 42, 59, 76, 93) 'столбцы в которых будет искаться информация


For s = LBound(arrGodi) To UBound(arrGodi)

'вначале запомним в какие строки не пустые. В них по идее содержиться информация о ХА
For i = 5 To 3685
        Sheets("Лист2").Select 'указываем лист от куда копируем
        x = ActiveSheet.Cells(i, arrGodi(s)).Value
        If x <> "" Then
            'проверяем, что массив инициализирован
            If IsNotEmptyArray(arrXA) Then
                'расширяем массив на 1 элемент
                ReDim Preserve arrXA(UBound(arrXA) + 1)
            Else
                'инициализируем массив первым элементом
                ReDim Preserve arrXA(0)
            End If
            'присваиваем элементу массива строку где содержится информация
            arrXA(UBound(arrXA)) = i
        End If
Next i

'теперь в строках запомненных в массиве arrXA пропишем значение ХА в конечной таблице
For j = LBound(arrXA) To UBound(arrXA)
    Sheets("лист1").Select 'указываем лист куда вставляем
    ActiveSheet.Cells(arrXA(j), arrGodi(s)).Value = "ХА"
Next j
Next s
End Sub

'функция проверки существования массива
Function IsNotEmptyArray(parArray As Variant) As Boolean
  On Error Resume Next
  IsNotEmptyArray = LBound(parArray) <= UBound(parArray)
End Function



строка ActiveSheet.Cells(arrXA(j), arrGodi(s)).Value = "ХА" вылетает с ошибкой 1004. Так и не могу понять почему
вот эта строка x = ActiveSheet.Cells(i, arrGodi(s)).Value проходит нормально

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
09.12.2016, 07:54
    #39363105
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel ошибка 1004
Guizaстрока ActiveSheet.Cells(arrXA(j), arrGodi(s)).Value = "ХА" вылетает с ошибкой 1004.
Код: vbnet
1.
Debug.Print ActiveSheet.Name


GuizaТак и не могу понять почему вот эта строка x = ActiveSheet.Cells(i, arrGodi(s)).Value проходит нормально
Код: vbnet
1.
2.
tmp = arrXA(j)
ActiveSheet.Cells(tmp, arrGodi(s)).Value = "ХА"


?
...
Рейтинг: 0 / 0
13.12.2016, 01:09
    #39365339
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel ошибка 1004
Guiza,

Определи ранг, в котором информация (подсказка .end(xldown), но есть и др. способы). Потом через copy/paste. Массивы оставь для 1969 года, тогда это было hot.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel ошибка 1004 / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]