Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 行计数和插入函数_Excel_Vba - Fatal编程技术网

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_

我正在使用以下代码从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_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