Так что я импортирую данные из книги в другую книгу. В рабочей книге, которая будет получать данные, у меня есть макрос (см. Ниже), который должен подсчитывать общее количество строк (от B13: lastrow) и добавлять комментарий с этим.
Ошибка времени выполнения только при запуске кода в changeevent
Я получаю ошибки времени выполнения -2147417848 (80010108) Автоматизация ошибка
Вызванный объект был отключен от клиентов.
Когда я использую Application.EnableEvents = False
Я не получаю эти ошибки, однако макрос не будет работать. Я предполагаю, что это имеет какое-то отношение к ActiveSheet, который я использую?
Sub FindTotalAmountOfRowsInColumn()
Dim startCol As String
Dim startRow As Long
Dim lastrow As Long
Dim lastCol As Long
Dim myCol As String
Dim ws, ws2 As Worksheet
Dim Rng As Range
Dim cell As Range
Application.ScreenUpdating = False
Set ws2 = ActiveSheet 'Preserves a reference to the active sheet as ws2
ThisWorkbook.Activate 'Makes this workbook the one that is displayed
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
startCol = "B"
startRow = 13
lastrow = ws.Range(startCol & ws.Rows.count).End(xlUp).Row
'lastCol = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column
lastCol = ws2.UsedRange.Columns(ws2.UsedRange.Columns.count).Column
myCol = GetColumnLetter(lastCol)
Set Rng = ws.Range(startCol & startRow & ":" & myCol & lastrow)
ws.Range("A8").Value = "ITEMCOUNT:" & Rng.Rows.count
End With
Application.ScreenUpdating = True
End Sub
Правильно ли было бы предположить, что Sheet1 является листом, на который вы перехватываете событие изменения? –
О да, прости. Таким образом, файл является «CIF LISTEN.xlsm», листом является «Sheet1». Это, кстати, работает, если я положил его в PreSave. – Niclas
'Dim ws, ws2 As Worksheet' - это фактически устанавливает ws как тип Variant, вы должны использовать' Dim ws as Worksheet, ws2 As Worksheet' –