當我單步執行代碼 (F8) 時,我的代碼運行順利,但是當我使用 F5 運行它或呼叫它從按鈕運行時,它并沒有按預期執行。它只在第一個單元格 (Q2) 中進行查找并將其余部分留空 - 就像它跳過將公式運行到最后一行一樣。
如何改進我的代碼以確保它始終按應有的方式運行?
Sub LookupFilename()
' Looks up the filename to be set according to Team Name
Application.ScreenUpdating = False
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("Q2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-3],Controller!C9:C12,4,FALSE),""Other"")"
Range("Q2").AutoFill Destination:=Range("Q2:Q" & LastRow)
Application.ScreenUpdating = True
MsgBox "Successful data collection.", vbInformation, "Success"
End Sub
uj5u.com熱心網友回復:
沒有必要Select或使用ActiveCellor AutoFill。代替:
Range("Q2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-3],Controller!C9:C12,4,FALSE),""Other"")"
Range("Q2").AutoFill Destination:=Range("Q2:Q" & LastRow)
和:
Range("Q2:Q" & LastRow).FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-3],Controller!C9:C12,4,FALSE),""Other"")"
請注意,您也不應該這樣做Activate。相反,請使用適當的作業表限定您的Range、Cells和Rows呼叫。注意.前面Cells和Rows下面Range:
Dim Data As Worksheet
Set Data = ThisWorkbook.Worksheets("Data")
With Data
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("Q2:Q" & LastRow).FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-3],Controller!C9:C12,4,FALSE),""Other"")"
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461210.html
上一篇:如何決議這個excel?
