VBA FormulaR1C1 中的类型不匹配删除了“-”符号后的值
Type mismatch in VBA FormulaR1C1 that removes values past "-" sign
我有一个简单的宏,它向下移动到最后一个填充的单元格,然后向右移动,应该将以下公式放在那里:“=LEFT(RC[-2], SEARCH(" - " ,RC[-2])-1)",从左边两个单元格中取值并删除“-”之后的所有字符。
Range("B1").End(xlDown).Select
Selection.Offset(0, 1).Select
Selection.FormulaR1C1 = "=LEFT(RC[-2], SEARCH(" - ",RC[-2])-1)"
问题是当我 运行 代码时出现类型不匹配错误。代码进入的单元格在代码 运行s.
之前是空白的
VBA 使用双引号 (") 来分隔字符串文字。例如:
const saying = "you look nice today"
当您想在字符串文字中使用双引号时会出现问题,如下所示:
const saying = "you look "nice" today"
在这种情况下,VBA 解释器将 saying 常量的值理解为“you look”,就好像您写了:
const saying = "you look "
但后来到了 'nice' 这个词,它被混淆了,因为它在语法上是无效的。有几种方法可以在 VBA 中将双引号放入字符串文字中。第一种方法是使用字符串连接和 chr() 函数。 chr() 函数 returns 一个基于 ASCII table 数值的字符。每个字符都有一个数值作为其基础。 “A”是数字65,“B”是数字66等等,双引号字符的ASCII数字是34。所以声明:
debug.print chr(65) & chr(66) & chr(34)
会显示以下内容
AB"
所以你可以写:
debug.print "you look " & chr(34) & "nice" & chr(34) & " today"
它会显示:
you look "nice" today
但我想你会同意我的看法,这种方法看起来很繁琐,所以在尝试将双引号放入字符串文字时有一个捷径。这似乎有点奇怪,但你需要放两个双引号而不是一个。所以下面的代码:
debug.print "you look ""nice"" today"
将打印:
you look "nice" today
我希望这个解释对您有所帮助。
我有一个简单的宏,它向下移动到最后一个填充的单元格,然后向右移动,应该将以下公式放在那里:“=LEFT(RC[-2], SEARCH(" - " ,RC[-2])-1)",从左边两个单元格中取值并删除“-”之后的所有字符。
Range("B1").End(xlDown).Select
Selection.Offset(0, 1).Select
Selection.FormulaR1C1 = "=LEFT(RC[-2], SEARCH(" - ",RC[-2])-1)"
问题是当我 运行 代码时出现类型不匹配错误。代码进入的单元格在代码 运行s.
之前是空白的VBA 使用双引号 (") 来分隔字符串文字。例如:
const saying = "you look nice today"
当您想在字符串文字中使用双引号时会出现问题,如下所示:
const saying = "you look "nice" today"
在这种情况下,VBA 解释器将 saying 常量的值理解为“you look”,就好像您写了:
const saying = "you look "
但后来到了 'nice' 这个词,它被混淆了,因为它在语法上是无效的。有几种方法可以在 VBA 中将双引号放入字符串文字中。第一种方法是使用字符串连接和 chr() 函数。 chr() 函数 returns 一个基于 ASCII table 数值的字符。每个字符都有一个数值作为其基础。 “A”是数字65,“B”是数字66等等,双引号字符的ASCII数字是34。所以声明:
debug.print chr(65) & chr(66) & chr(34)
会显示以下内容
AB"
所以你可以写:
debug.print "you look " & chr(34) & "nice" & chr(34) & " today"
它会显示:
you look "nice" today
但我想你会同意我的看法,这种方法看起来很繁琐,所以在尝试将双引号放入字符串文字时有一个捷径。这似乎有点奇怪,但你需要放两个双引号而不是一个。所以下面的代码:
debug.print "you look ""nice"" today"
将打印:
you look "nice" today
我希望这个解释对您有所帮助。