vba - Excel VBA || 在 Selection.Formula 语句中使用变量值
问题描述
我知道整个网站有很多相关的问题,但无论出于何种原因,我都无法让这个宏产生正确的结果......请帮助!
代码:
Sheets("Interface Catalogue").Select
Dim UniqID As String
UniqID = Trim(ActiveCell.Value)
Sheets("Data Elements").Select
LastB = Cells(Rows.Count, "B").End(xlUp).Row
LastA = Cells(Rows.Count, "A").End(xlUp).Row
If LastA > LastB Then
Range("A" & Rows.Count).End(xlUp).Offset(10).Select
Selection.Formula = "=HYPERLINK(""#""&CELL(""address"",INDEX('Interface Catalogue'!F:F,MATCH(""& UniqID &"",'Interface Catalogue'!F:F,0))),""& UniqID &"")"
Else
Range("B" & Rows.Count).End(xlUp).Offset(2).Previous.Select
Selection.Formula = "=HYPERLINK(""#""&CELL(""address"",INDEX('Interface Catalogue'!F:F,MATCH(""& UniqID &"",'Interface Catalogue'!F:F,0))),""& UniqID &"")"
End If
End Sub
运行宏应在“数据元素”工作表(基于“If”的 A 列或 B 列)的单元格中输入超链接,该超链接链接到分配给 UniqID 变量的值(运行宏时为 ActiveCell)在“接口目录”工作表中找到...
我几乎可以肯定,问题出在公式如何解释我的变量(“”和 UniqID 和“” - - 语法正确???)......当我在公式中硬编码一个值而不是使用 UniqID 变量时, 有用。当我调试并检查分配给 UniqID 变量的值时,它是 ActiveCell 值(如预期的那样)。我目前得到的是相应“数据元素”单元格中的超链接“#N/A”,因此其余代码似乎正在运行。该公式根本没有在“接口目录”选项卡中找到值(同样,这似乎与变量在 selection.formula 语句中的使用方式有关,因为当我在那里硬编码一个值时它可以工作) .
需要明确的是,我是 VBA 的完全新手(就像我昨天刚开始一样)......真的只是希望能弄清楚这一点。提前致谢!!
解决方案
改变""& UniqID &"" to """ & UniqID &"""
字符串中的两个双引号转换为一个双引号。所以你还需要一个来结束字符串,这样你就可以连接你的变量。然后再一个开始字符串备份,然后再两个变成文字“。
这很令人困惑,但在你把头绕过去之后它就有意义了。你也可以这样做:
" & Chr(34) & UniqID & Chr(34) & "
其中 Chr(34) 是双引号。
推荐阅读
- java - Java重复比较值与数组双精度并在错误输入后重复
- dart - Flutter ScrollController finout 最大偏移量
- javascript - chart.js:将堆叠条形图的工具提示放在条形顶部
- pandas - 比较两个数据帧并输出一次重复行的索引
- google-cloud-firestore - 范围收集组查询
- reactjs - 反应路由器私有路由/重定向不适用于 redux
- javascript - 将 Angular 4 升级到 7 商店后无法正常工作
- c++ - 如何在 Linux 用户空间中处理类似 GPIO 中断的处理
- javascript - Mongoose:如何按该字段的百分比更新数字字段
- nativescript - 如何在 Android 的 Nativescript Angular 中更改 segmentedBar 选择的 tabview 指示器颜色