Arrays VBA:选择依赖于在查找公式中使用的变量的数组

Arrays VBA:选择依赖于在查找公式中使用的变量的数组,arrays,excel,lookup,vba,Arrays,Excel,Lookup,Vba,我正在尝试编写vba代码,将公式写入单元格。公式是在数组固定的情况下,在另一个工作表上进行hlookup,其大小取决于已定义的变量 以下是代码的相关部分(变量已定义且为整数): 我已经检查了变量是否存在问题。我已经意识到我还没有修复这个阵列,因为我不知道怎么做。我还认为页面引用“visions!”可能是不正确的,但是代码没有选择数组,即使没有这个。我尝试使用的数组是我键入时将显示的选定区域 Range("C2",Cells(" & rowsforlook & ", " &

我正在尝试编写vba代码,将公式写入单元格。公式是在数组固定的情况下,在另一个工作表上进行hlookup,其大小取决于已定义的变量

以下是代码的相关部分(变量已定义且为整数):

我已经检查了变量是否存在问题。我已经意识到我还没有修复这个阵列,因为我不知道怎么做。我还认为页面引用“visions!”可能是不正确的,但是代码没有选择数组,即使没有这个。我尝试使用的数组是我键入时将显示的选定区域

Range("C2",Cells(" & rowsforlook & ", " & rowsforauto & " + 1)).Select

谢谢。

要修复范围,我建议您在字符串中构建范围,而不是使用range()方法。我想你想要产生一个结果,看起来像:

"=hlookup(A2,Visits!C2:D10)"
startRow = 2 'Generate some dynamic string variables
endRow = 10
Range("C2").Formula = "=hlookup(A2,Visits!" & "C" & startRow & ":" & "D" & endRow & ")"
(示例-可能需要传递第3个参数false并更改行/列)

要动态编写此代码,它可能类似于:

"=hlookup(A2,Visits!C2:D10)"
startRow = 2 'Generate some dynamic string variables
endRow = 10
Range("C2").Formula = "=hlookup(A2,Visits!" & "C" & startRow & ":" & "D" & endRow & ")"

您可能还需要动态生成“C”和“D”部分,但这种格式应该适合您。

我注意到的第一件事是:您尝试在双引号中使用双引号(“)。(注意C2显示为黑色而不是红色)。要做到这一点,您应该使用双引号,即“C2”“谢谢,我遇到的问题是列号(代替上面的D)是一个变量。所以我不认为我可以像上面那样使用字符串格式,但是需要使用单元格来编写它。有什么想法吗?谢谢。如果你检查了这个问题,它应该会帮助你从数字银行获得链接栏的字母,这似乎是一个很长的路要走。我认为可以用R1C1格式定义数组?这是可能的,但请记住,您正在设置一个单元格公式。您正在模拟用户在单元格中键入“=VLookup(..”)时所做的操作。我相信他们很可能是一种做这件事的方法,但我认为我给出的方法实际上相当快。使用已接受答案在给定链接上建议的函数。我尝试使用上面的格式,但不起作用。我试着使用上面的精确代码(在一个新的电子表格上,去掉“访问!”),但它不起作用!