У меня проблема с обновлением UsedRange каждый раз, когда я его использую. У меня есть это в моем коде:VBA: UsedRange Не обновляется правильно
Sheets("Campaign").UsedRange 'Refresh UsedRange
LastRow = Sheets("Campaign").UsedRange.Rows.Count
Это проверка последней строки, используемой на конкретном рабочем листе. Теперь он работает и выводит правильное целое число при первом запуске, но не обновляется, если вы удаляете строки из столбца с наибольшим количеством строк. Дело в том, что оно обновляется, если вы добавляете больше строк в этот конкретный столбец.
Вот мой фактический код:
Sub CMPGN_MCRO()
Sheets("Campaign").UsedRange 'Refresh UsedRange.
LastRow = Sheets("Campaign").UsedRange.Rows.Count
Dim RangeString As String
Worksheets("Campaign").Select
Range("A1:A" & LastRow).Select
RangeString = Selection.Address
Range("A1").End(xlToRight).Select
RangeString = RangeString & ":" & Selection.Address 'Selects all the data in Campaign Worksheet.
Dim C As Range
i = 2
For Each C In Worksheets("Campaign").Range(RangeString).Cells
If Mid(C.Value, 6, 2) = "AC" Then
Worksheets("Sheet3").Range("A" & i) = C.Value 'Echo out all the filtered data and output it to another worksheet.
i = i + 1
End If
Next
MsgBox (LastRow)
End Sub
PS: Я использовал MsgBox эхо из целого числа, что usedRange производит.
Удаленный тег VB.NET. VB.NET <> VBA –