У меня есть следующий код, который обновляет данные в «Листе аудита» с конкретными данными на листе «Мастер», печатает лист «Аудит» и циклы до тех пор, пока последняя строка не будет пуста. Он отлично работает для небольшого объема данных, но у меня есть еще один проект, который будет содержать более 1800 строк данных. Я не хочу засорять принтер с 1800 страницами одновременно.VBA для циклического набора строк строк
Что я хочу, чтобы иметь возможность всплывать окно и указывать начальную строку и конечную строку. Я делал это раньше, но за многие годы я забыл, как я изначально написал код. Любая помощь приветствуется.
Sub testLoopPaste()
Dim i As Long
Dim LastRow As Long
Dim wb As Workbook
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Set wb = ThisWorkbook
Set sht1 = wb.Sheets("Master")
Set sht2 = wb.Sheets("Audit Sheet")
Application.ScreenUpdating = False
'Find the last row (in column A) with data.
LastRow = sht1.Range("A:A").Find("*", searchdirection:=xlPrevious).Row
'This is the beginning of the loop
For i = 2 To LastRow
'First activity
sht2.Range("B1" & ii) = sht1.Range("B" & i).Value
sht2.Range("B2" & ii) = sht1.Range("A" & i).Value
sht2.Range("B3" & ii) = sht1.Range("N" & i).Value
sht2.Range("H1" & ii) = sht1.Range("C" & i).Value
sht2.Range("H2" & ii) = sht1.Range("I" & i).Value
sht2.Range("H3" & ii) = sht1.Range("F" & i).Value
sht2.Range("K1" & ii) = sht1.Range("D" & i).Value
sht2.PrintOut
Next i
Application.ScreenUpdating = True
End Sub
Для простого всплывающего окна вы можете использовать 'InputBox'. Используйте два и сохраните два числа, которые пользователь вводит в переменные. –
Я считаю, что вы хотите получить форму пользователя. Нашел эту ссылку для быстрого пошагового руководства. http://www.excel-easy.com/vba/userform.html – ThatGuy