Excel 行计数和插入函数
我正在使用以下代码从excel文件中复制,以“延期交货明细”开头: 我从另一个excel文件复制了这个函数。效果不错。但出于某种原因,下面的部分现在给了我一个错误:Excel 行计数和插入函数,excel,vba,Excel,Vba,我正在使用以下代码从excel文件中复制,以“延期交货明细”开头: 我从另一个excel文件复制了这个函数。效果不错。但出于某种原因,下面的部分现在给了我一个错误: With wb2.Sheets("RAW_DATA") countEND = .Cells(.Rows.Count, "A").End(xlUp).Row .Range("BY3:BY" & countEND).Formula = "=IFERROR(IF(AND(VLOOKUP(VALUE(AS3);BG_
With wb2.Sheets("RAW_DATA")
countEND = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("BY3:BY" & countEND).Formula = "=IFERROR(IF(AND(VLOOKUP(VALUE(AS3);BG_DATA!A:A;1;FALSE)=(VLOOKUP(VALUE(AS3);BG_DATA!A:A;1;FALSE));(AF3>0));"""";""x"");""x"")" 'Check
.Range("BZ3:BZ" & countEND).Formula = "=VLOOKUP(VALUE(AS3);BG_DATA!A:I;9;FALSE)" 'Vendor'
.Range("CA3:CA" & countEND).Formula = "=VLOOKUP(VALUE(AS3);BG_DATA!A:J;10;FALSE)" 'Planner
End With
运行时错误1004-应用程序定义或对象定义错误。
我用谷歌搜索了一下,但没有找到解决办法。Excel文件是XLSX,现在是XLSM。有人能告诉我是什么问题吗?您使用的是分号
作为公式中的分隔符,但分隔符取决于工作簿的本地化。改用逗号,
:
With wb2.Sheets("RAW_DATA")
countEND = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("BY3:BY" & countEND).Formula = "=IFERROR(IF(AND(VLOOKUP(VALUE(AS3),BG_DATA!A:A,1,FALSE)=(VLOOKUP(VALUE(AS3),BG_DATA!A:A,1,FALSE)),(AF3>0)),"""",""x""),""x"")" 'Check
.Range("BZ3:BZ" & countEND).Formula = "=VLOOKUP(VALUE(AS3),BG_DATA!A:I,9,FALSE)" 'Vendor'
.Range("CA3:CA" & countEND).Formula = "=VLOOKUP(VALUE(AS3),BG_DATA!A:J,10,FALSE)" 'Planner
End With
或者,您可以使用
.FormulaLocal
而不是.Formula
,但它只在本地化定义分号作为分隔符的工作簿中起作用。如果wb1为空,则wb2也为空,因为它是在if语句中设置的。当您收到错误时,countend的值是多少。但是我打开了正确名称的文件。。。所以它不应该是什么。但是你真的检查过了吗?是的,完全一样。我甚至从文件中复制了名称,并确保没有空格。它甚至是我以前使用过宏的工作簿中的同一个文件(Backorders Detail)。好的,然后使用F8逐行检查代码,并在代码运行时检查每个范围变量的地址。在某些情况下,它一定会出错,如果文件名是正确的,那么工作表名呢?countEND的值是多少?是否设置了?
With wb2.Sheets("RAW_DATA")
countEND = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("BY3:BY" & countEND).Formula = "=IFERROR(IF(AND(VLOOKUP(VALUE(AS3),BG_DATA!A:A,1,FALSE)=(VLOOKUP(VALUE(AS3),BG_DATA!A:A,1,FALSE)),(AF3>0)),"""",""x""),""x"")" 'Check
.Range("BZ3:BZ" & countEND).Formula = "=VLOOKUP(VALUE(AS3),BG_DATA!A:I,9,FALSE)" 'Vendor'
.Range("CA3:CA" & countEND).Formula = "=VLOOKUP(VALUE(AS3),BG_DATA!A:J,10,FALSE)" 'Planner
End With