Первый пост здесь.У меня нет опыта работы с VBA, и я собрал воедино все из поисков на этом сайте.Это сообщество потрясающее.
У меня есть таблица данных, в которой количество строк может варьироваться в зависимости от того, что заполнено в производственной форме.Я пытаюсь скопировать диапазон и вставить его на второй лист, однако мне нужно, чтобы VBA был достаточно умным, чтобы идти только до тех строк, которые фактически содержат результирующие данные - поскольку у меня есть формулы с результирующим "", если строки данныхв форме не заполнены.
Мои данные начинаются с I12 и всегда будут уменьшаться до Q: #.Может кто-нибудь, пожалуйста, помогите мне понять, как правильно использовать мою Lastrow?Код ниже.
Sub Post_P()
'
' Post_P Macro
'these are setting dimentions for the macro
Dim wb As Workbook
Dim wsData As Worksheet
Dim wsDest As Worksheet
Dim LastRow As Long
Dim LastCol As Long
'these are setting definitions for the sheets
Set wb = ActiveWorkbook
Set wsData = wb.Sheets("Production Sheet")
Set wsDest = wb.Sheets("Journalized Result")
'this next part is looking at the flexible range of data on the input tab and copy and pasting values to inventory log tab
With wsData
LastRow = Cells.Find(What:="*", After:=Range("I12"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("I12"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
wsData.Range("I12:Q" & LastRow).Copy
End With
With wsDest
wsDest.Range("b" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
End With
With wsDest 'this is autofilling the formula in A base on the number of rows in B
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
With .Range("A3:A" & LastRow)
.Formula = "=a2+1"
End With
End With
'this next part is returning the user to the initial page
With wsData.Range("b11").Select
MsgBox ("Post Completed")
End With
End Sub
Большое спасибо всем за помощь.
Спасибо