VBA - 将字符串变量传递给公式产生 "application-defined or object-defined error"
VBA - Passing string variable to formula yields "application-defined or object-defined error"
我遇到了以下问题:
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!""" & column_string & """ 3)"
(整数是某个整数)不断返回“对象定义或应用程序定义的错误”。
column_string是
得到的字符串变量
column_string = Split(Cells(a,b).Address(True,False), "$")(0)
基本上只包含我要引用的单元格的列字母。
我是否错误地传递了字符串变量?如果我想另外传递一个整数变量而不是“3”,我的代码应该是什么样子?
感谢任何帮助,我已经坚持了很长时间了。
你我这样试试这个公式:
Dim b As Long, column_string As String
b = 2: column_string = "C" 'the result simulation of your extraction using Split
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!" & column_string & 3
'having the b variable value, no need to extract the column letter:
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!" & cells(3, b).Address(0, 0)
关于 VBA
中的公式的一两个想法
您如何为 Excel
中的 A
列编写公式?
=Workbook2!A3
在 VBA 你会这样做:
rng.formula = "=Workbook2!A3"
你也可以这样写:
rng.Formula = "=Work" & "book2" & "!A3"
或者像这样:
rng.Formula = "=" & "Work" & "book" & "2" & "!" & "A3"
但当然在这种情况下(你的 post)你想这样写:
rng.Formula = "=Workbook2!" & "A" & "3"
现在当你让它动态化时,你知道该怎么做了:
rng.Formula = "=Workbook2!" & column_string & "3"
正如评论中提到的 FunThomas
一样,您可以使用变量(尤其是当存在更复杂的变量时,您应该这样做)。然后你可以为公式创建一个新的 Sub 并写...
Dim strFormula As String
strFormula = "=Workbook2!" & "A" & "3"
...并在立即 window (CTRL+G) 中查看书面结果...
Debug.Print strFormula
...并修改公式,直到正确为止。
我遇到了以下问题:
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!""" & column_string & """ 3)"
(整数是某个整数)不断返回“对象定义或应用程序定义的错误”。
column_string是
得到的字符串变量column_string = Split(Cells(a,b).Address(True,False), "$")(0)
基本上只包含我要引用的单元格的列字母。
我是否错误地传递了字符串变量?如果我想另外传递一个整数变量而不是“3”,我的代码应该是什么样子?
感谢任何帮助,我已经坚持了很长时间了。
你我这样试试这个公式:
Dim b As Long, column_string As String
b = 2: column_string = "C" 'the result simulation of your extraction using Split
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!" & column_string & 3
'having the b variable value, no need to extract the column letter:
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!" & cells(3, b).Address(0, 0)
关于 VBA
中的公式的一两个想法您如何为 Excel
中的 A
列编写公式?
=Workbook2!A3
在 VBA 你会这样做:
rng.formula = "=Workbook2!A3"
你也可以这样写:
rng.Formula = "=Work" & "book2" & "!A3"
或者像这样:
rng.Formula = "=" & "Work" & "book" & "2" & "!" & "A3"
但当然在这种情况下(你的 post)你想这样写:
rng.Formula = "=Workbook2!" & "A" & "3"
现在当你让它动态化时,你知道该怎么做了:
rng.Formula = "=Workbook2!" & column_string & "3"
正如评论中提到的 FunThomas
一样,您可以使用变量(尤其是当存在更复杂的变量时,您应该这样做)。然后你可以为公式创建一个新的 Sub 并写...
Dim strFormula As String
strFormula = "=Workbook2!" & "A" & "3"
...并在立即 window (CTRL+G) 中查看书面结果...
Debug.Print strFormula
...并修改公式,直到正确为止。