Итак, есть книга, в которой выполняется макрос, созданный другой группой в компании и ее GARBAGE, но они заблокировали ее и не позволят мне изменять VBA. Поэтому я пытаюсь извлечь из этой книги выход из этой книги. Заголовки диапазона находятся в объединенных рядах, а первые 11 строк заняты кнопками для запуска макроса.Выбор диапазона с помощью слияющих ячеек
Вот мой текущий код
Sub Pull_Data()
Dim returnValue As Variant
Dim wb As Workbook
Dim ws As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Set wb2 = Application.Workbooks("name.xlsm")
Set ws2 = wb2.Worksheets("INPUT")
Dim rng As Range
r = Range("H65536").End(xlUp).Row
Set ws = wb.Worksheets("Report")
ws.Range("A11:A13").Select
Set rng = ws.Range(Cells(11, 1), Cells(r, 8))
rng.Select
rng.Copy
wb2.Activate
ws.Range(Cells(1, 1), Cells(r, 8)).PasteSpecial xlPasteAll
End Sub
Моя проблема заключается в том, что, когда я пытаюсь выбрать весь вывод, что иногда выбирает то, что я хочу (А11 Н, то последняя строка со значением), но иногда выбирает A1 : H11 и его разочарование, как черт понять эту проблему. Если есть лучший способ, я бы с удовольствием узнал.
EDIT:
Обновленный код
Sub Pull_Data()
Dim returnValue As Variant
Dim wb As Workbook
Dim ws As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Set wb2 = Application.Workbooks("name.xlsm")
Set ws2 = wb2.Worksheets("INPUT")
Dim rng As Range
r = Application.Max(Range("H65536").End(xlUp).Row, 11)
Set ws = wb.Worksheets("Report")
ws.Range("A11:A13").Select
Set rng = ws.Range(Cells(11, 1), Cells(r, 8))
rng.Select
rng.Copy
wb2.Activate
ws.Range(Cells(1, 1), Cells(r, 8)).PasteSpecial xlPasteAll
End Sub
Если нет содержания в ColH тогда было бы выбрать A1: H11. Попробуйте 'r = Application.Max (Range (« H65536 »). End (xlUp) .Row, 11)' вместо того, что у вас есть сейчас. –
ОК, поэтому я внес изменения, и я обновлю свой код, чтобы отразить изменения. Он работал в первый раз, но ..... затем я закрыл книгу и снова запустил код, и теперь он выбирает только верхний ряд, поэтому мысли A11: H13? – user3271518