Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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_Loops_Formula_Vlookup - Fatal编程技术网

Excel 添加轴心值-其他问题

Excel 添加轴心值-其他问题,excel,vba,loops,formula,vlookup,Excel,Vba,Loops,Formula,Vlookup,我试图使用VBA将VLookups添加到工作表中。在这个小组的帮助下,我成功地使我的代码正常工作,但仍然存在如下所述的错误 AA列中的第一个VLOOKUP 键入的公式将显示:=VLOOKUPB2,'Supplier Audit Report'!C:AB,26,假 BB列中的第二个VLOOKUP 键入的公式看起来:=VLOOKUPU2,Pivot!A1:B1802,2,假 其中,单元格A1:B1802是定义为pvt的透视表 每次运行宏时,轴的大小都会不同,因此我更喜欢引用已定义的轴表,而不是A1:

我试图使用VBA将VLookups添加到工作表中。在这个小组的帮助下,我成功地使我的代码正常工作,但仍然存在如下所述的错误

AA列中的第一个VLOOKUP 键入的公式将显示:=VLOOKUPB2,'Supplier Audit Report'!C:AB,26,假

BB列中的第二个VLOOKUP 键入的公式看起来:=VLOOKUPU2,Pivot!A1:B1802,2,假 其中,单元格A1:B1802是定义为pvt的透视表 每次运行宏时,轴的大小都会不同,因此我更喜欢引用已定义的轴表,而不是A1:B1802 我想把公式填到表中数据的末尾,每次都填到不同的单元格

我的代码如下。我已经经历了多次迭代,这次迭代成功地将VLOOKUP公式转换为AA,但不是AB。然而,列的每个单元格中的公式如下所示,即xcell引用不会随着公式循环而改变,因为它是文本,周围没有任何值,所以不会返回值

   =VLOOKUP(SEUR0310,'Supplier Audit Report'!C:AB,26,FALSE)
其中SEUR0310甚至不是B2中的值。我希望公式显示:

  =VLOOKUP(B2,'Supplier Audit Report'!C:AB,26,FALSE) in cell AA2
  =VLOOKUP(B3,'Supplier Audit Report'!C:AB,26,FALSE) in cell AA3 and so on
当它完成AA的第一个循环时,AB Vlookup的错误如下:应用程序定义的错误或对象定义的错误。运行时错误1004

有人对如何修复代码以使其正常工作有什么建议吗。我还是VBA的新手,非常感谢您的帮助

现行代码


您是否在寻找关于这些方法如何工作的解释?即循环是如何工作的或范围方法是如何工作的?

阅读代码时需要注意以下几点: 1我不确定您是否需要编写rmt=AA2:AA。写rmt=AA就足够了

Range("AA1").Select
    ActiveCell.FormulaR1C1 = "Matching Type"
    Range("AB1").Select
    ActiveCell.FormulaR1C1 = "PO Value"
    Columns("Y:Y").Select
    Selection.Copy
    Columns("AA:AB").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
为什么需要这个代码块?看起来您正在制作的列标签实际上与将公式放入列无关


此外,在for each循环中,需要下一条语句来结束循环。这样excel就知道何时迭代单元格;从一个单元格转到下一个单元格。每个单元格的工作都在循环中完成,但是循环需要为范围内的每个单元格打开一个窗口,然后关闭一个窗口

谢谢您的回复。我希望了解哪种方法最适合我的情况,无论是选项还是其他方法,以及如何编写代码。好的。要在对象之间循环时,将使用for each循环;例如,如果您有一个对象数组,例如透视表或文件,则可以使用for-each循环遍历每个对象。range.formula正在尝试将特定公式硬编码到单元格中;很好地把它放进去,但如果你想从一个单元格增加到另一个单元格,就没那么好了。为了动态地输入值,我通常使用这样编写的for循环:对于I=1到length-cellsi,27=vlookup函数--下一步我现在下一件事;您想将公式添加到电子表格中,还是想在Vba中进行vlookup计算?谢谢-我想在表中输入vookup。在AA列中,将vlookup映射到B列中的单元格,再映射到定义为sSAR的工作表中的数据。在AB列中,将U列中的vlookup to单元映射到定义为sPIV的工作表中定义为pvt的透视表中的数据。在这两种情况下,我都希望数据填充到表的底部。这将每周运行一次,每次工作表和透视表中的数据大小都不同。我已经使用类似以下代码设置了宏来计算数据的大小:lastrowDB=sDB.CellsRows.Count,C.EndxlUp.row以及建议的其他方法不起作用的地方?这段代码用于标记列,工作正常。这是插入我正在挣扎的VLOOKUP的代码。我已经为循环添加了下一位,我的问题是VLOOKUP中的文本的措辞。我现在已经成功地将第一个VLOOKUP放入表中,但它填充的内容不正确。我将更新上面的代码并添加更多问题。非常感谢你的帮助!!答案基于:试试RangerMT.Formula==VLookupxcell,'sSAR!C:AB,26,False加上引号和等号谢谢你们的回复,但这似乎根本不起作用。我已经将上面的问题和代码修改到我现在的位置。再次感谢您抽出时间
Range("AA1").Select
    ActiveCell.FormulaR1C1 = "Matching Type"
    Range("AB1").Select
    ActiveCell.FormulaR1C1 = "PO Value"
    Columns("Y:Y").Select
    Selection.Copy
    Columns("AA:AB").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False