Я использую VBA для управления набором данных. У меня будут месячные данные в течение 50 месяцев, и я хочу классифицировать их на разные листы на основе ПЕРВОГО слова в ячейке. Вот что я сделал до сих пор;Ошибка копирования и вставки: '1004'
Я создал книгу с 2-мя листами,
- Лист1 (Служащий Inventory)
- Лист2 (PB)
и мой код записывается и сохраняется в этом учебном пособии.
Sub myCode()
Dim OldString As String
Dim NewString As String
Set i = Sheets("Employee Inventory")
Set PB = Sheets("PB")
Dim counterPB
counterPB = 2
Dim d
Dim j
d = 1
j = 2
Do Until IsEmpty(i.Range("D" & j))
OldString = i.Range("D" & j)
NewString = Left(OldString, 2)
If NewString = "PB" Then
i.Rows(j).EntireRow.Copy
PB.Range("A" & counterPB).Select
PB.Paste
counterPB = counterPB + 1
End If
j = j + 1
Loop
End Sub
Извините за код, поскольку это выглядит странно. Этот код просматривает Sheet1 и сканирует столбец «D» и ищет первое слово, начинающееся с «PB». Как только он найдет его, он скопирует и вставляет всю строку в другой лист, называемый Sheet2 (PB).
Когда я нахожусь в окне Microsoft Visual Basic И у меня есть таблица Excel с открытой вкладкой Sheet1 (Employee Inventory), и когда я нажимаю Run Sub, я получаю следующую ошибку: Ошибка времени выполнения '1004': Application-defined или объектная ошибка. Когда я нажимаю на вкладку «PB», ничего не копируется и не вставляется туда.
ОДНАКО, когда я нажимаю на вкладку PB, а затем нажимаю Run Sub, коды выполняются, и любые строки, содержащие первое слово «PB», будут скопированы и вставлены на вкладку «PB».
Мой вопрос: почему он работает, только когда у меня открыт Sheet2, а не когда у меня открыт Sheet1?