错误400消息 – 不知道如何解决它的公式

嗨,我已经把这个VBA通过查看这个网站上的post,使我可以运行一个公式,所有的价值表的表单。 然而,每次我运行它我得到一个错误400消息。 我在哪里做错了,我怎么会使这个VBA的工作,使用另一个表上的列确定的长度。

Sub FillWorksheet1() Application.ScreenUpdating = False lastRow = Range("B" & Rows.Count).End(xlUp).Row Range("AF2").Formula = "=firstPart($G2)" Range("AF2").AutoFill Destination:=Range("AF2:AF" & lastRow) Range("AG2").Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,2,FALSE)" Range("AG2").AutoFill Destination:=Range("AG2:AG" & lastRow) Range(AH2).Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,3,FALSE)" Range("AH2").AutoFill Destination:=Range("AH2:AH" & lastRow) Range(AI2).Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,4,FALSE)" Range("AI2").AutoFill Destination:=Range("AI2:AI" & lastRow) Range(AJ2).Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,5,FALSE)" Range("AJ2").AutoFill Destination:=Range("AJ2:AJ" & lastRow) Range(AK2).Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,6,FALSE)" Range("AK2").AutoFill Destination:=Range("AK2:AK" & lastRow) Range(AL2).Formula = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,7,FALSE)" Range("AL2").AutoFill Destination:=Range("AL2:AL" & lastRow) ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True End Sub 

任何帮助将非常感激。

第一部分公式是由VBA创build的,用于删除文本后面的数字,以便收集产品代码而不仅仅是客户特定的代码。

我会做这样的事情:

 Sub FillWorksheet1() Dim lastRow As Long Dim lCalc As XlCalculation With Application .ScreenUpdating = False lCalc = .Calculation .Calculation = xlCalculationManual End With lastRow = Sheets("some other sheet").Range("B" & Rows.Count).End(xlUp).Row Range("AF2").Formula = "=firstPart($G2)" Range("AG2").Formula = "=MATCH($AF2,'Naming Lookup'!$A$2:$A$10815,0)" Range("AH2:AM2").Formula = "=INDEX('Naming Lookup'!B$2:B$10815,$AG2)" Range("AF2:AM2").AutoFill Destination:=Range("AF2:AM" & lastRow) ActiveSheet.AutoFilterMode = False With Application .Calculation = lCalc .ScreenUpdating = True End With End Sub 

如上所述,报价缺失。

您也可以通过对每个公式使用一行来使代码更具可读性。 例如:

 Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row Range("AF2:AF" & LastRow) = "=firstPart($G2)" Range("AG2:AG" & LastRow) = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,2,FALSE)" Range("AH2:AH" & LastRow) = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,3,FALSE)" Range("AI2:AI" & LastRow) = "=VLOOKUP($AF2,'Naming Lookup'!$A$2:$G$10815,4,FALSE)" 'ect