【问题标题】:Type Mismatch error on string creation VBA字符串创建 VBA 上的类型不匹配错误
【发布时间】:2017-03-28 15:54:34
【问题描述】:

我遇到了一个问题,我无法通过 google 搜索完全弄清楚。我正在根据工作簿中的单元格内容和变量数组中的值构造一个字符串,并在代码到达我构造字符串的参数时出现类型不匹配错误。代码如下。任何帮助表示赞赏,谢谢!

    Dim taskAssignments As String
        taskAssignments = ws.[getTaskAssignment] & var(i, 1) & ws.[getTaskAssignment2]

【问题讨论】:

  • 这里没有足够的信息给你一个明确的答案。 getTaskAssignment/getTaskAssignment2 到底是什么(说真的?有意义的名字怎么样?)以及它的价值是什么?
  • 尝试将 3 个中的每一个放入 taskAssignments 字符串中,一次一个,看看 哪个 导致问题?
  • 两个的地方尝试ws.Range("getTaskAssignment")
  • 如果 getTaskAssignmentgetTaskAssignment2 是同一工作表的两个 命名范围 的名称,ws 是一个有效的对象引用,那么您的代码是var(i, 1) 部分可能会失败 -> 将其包装在 Cstr() 调用中

标签: vba excel


【解决方案1】:

尝试将每个值包装在CStr() 中,以将这些值显式转换为String

taskAssignments = CStr(ws.[getTaskAssignment]) & cstr(var(i, 1)) & cstr(ws.[getTaskAssignment2])

【讨论】:

  • 如果单元格包含错误,这将完全一样。
  • 还可以尝试在每个范围的末尾使用 .Value。例如 ws.[getTaskAssignment].Value ...如果需要,您可以将其与 Cstr() 结合使用。
  • 这行得通 - 谢谢。单元格没有错误,我已经审查过了。我会接受答案。
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-19
  • 2017-04-12
相关资源
最近更新 更多