我需要掃描列B以找到單元格AL2中找到的左側字符相同的任何值,字符串的長度在AR1中找到。如果Col B中的左邊值與AL2中的值匹配,我需要將該行中的值從Col B複製到Col G.複製到Col At,開始一個AT6並繼續向下,直到Col C中的所有值都被檢查。第一張圖片是要掃描的數據,第二張圖片是我想要的宏吐出的圖片掃描列中匹配的文本並將結果粘貼到另一列
這裏是我錄製的修改過的宏。 IF語句中出現運行時錯誤13。任何想法如何清理?
Sub GenerateSummaryPage()
'
' scans B column for combiner box numbers
Application.ScreenUpdating = False
Dim dlen As String
Worksheets("HR-Cal").Activate
dlen = Worksheets("HR-Cal").Range("AR2")
r = ActiveCell.Row
For lrow = Cells(Cells.Rows.Count, "B").End(xlUp).Row To 7 Step -1
'checks curent row for box name in cell AL2
'copies values from col B to col G in that row to into Col AT, starting at AS6
If Left(Cells(lrow, "B"), dlen) = ActiveSheet.Range("AL2").Text Then Range("B" & r).Rows.Select
'If Left(Cells(lrow, "B"), dlen) = Range("AL2").Value Then Range("B" & r & ":G" & r).Select
Selection.Copy
Range("AT100000").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteAll)
Next lrow
Application.ScreenUpdating = True
'insert rows for inverter headers
End Sub
我認爲你的意思'範圍(「B」 &r&「:G」&r).rows.Select' – findwindow
@findwindow我做了調整,並得到了同樣的錯誤,但刪除.rows和運行宏沒有錯誤但沒有複製數據從B :G,並且靜靜地盯着那個單元格。我是否需要使用循環在AT6開始併爲每個值添加一行? –
你的循環應該工作。它是'Range(「AS6」)。選擇'那是問題。你需要做出這個變量。像'細胞(lrow,45).select'(45是列AS?)。編輯:你爲什麼向後循環? – findwindow