如何解决VBA-将字符串变量传递给公式会产生“应用程序定义的错误或对象定义的错误”
我遇到以下问题:
Sheets("Workbook 1 ").Range("N" & integerv).Formula = "=Workbook2!""" & column_string & """ 3)"
(integerv是一些整数)不断返回“对象定义或应用程序定义的错误”。
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中的公式只需一两个想法
您如何在A
中为列Excel
编写公式?
=Workbook2!A3
在VBA中,您可以这样做:
rng.formula = "=Workbook2!A3"
您也可以这样写:
rng.Formula = "=Work" & "book2" & "!A3"
或类似这样:
rng.Formula = "=" & "Work" & "book" & "2" & "!" & "A3"
当然,在这种情况下(您的帖子),您想这样写:
rng.Formula = "=Workbook2!" & "A" & "3"
现在,当您使其动态时,您知道该怎么做:
rng.Formula = "=Workbook2!" & column_string & "3"
如评论中的FunThomas
所述,您可以使用变量(尤其是在有一个更复杂的变量时)。然后,您可以为公式创建一个新的Sub并编写...
Dim strFormula As String
strFormula = "=Workbook2!" & "A" & "3"
...并在立即窗口( CTRL + G )中看到带有...的书面结果。
Debug.Print strFormula
...然后修改公式,直到正确为止。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。