首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBA FormulaR1C1中输入不匹配,移除过去的值"-“符号

在VBA FormulaR1C1中输入不匹配,移除过去的值"-“符号
EN

Stack Overflow用户
提问于 2022-03-17 12:19:28
回答 1查看 55关注 0票数 0

我有一个简单的宏,它向下移动到最后一个填充的单元格,然后移动到右边,并在其中放置以下公式:“=左侧(RC-2,SEARCH(”-“,RC-2)-1)",它将两个单元格的值移至左边,并删除”-“之后的所有字符。

代码语言:javascript
复制
Range("B1").End(xlDown).Select
Selection.Offset(0, 1).Select

Selection.FormulaR1C1 = "=LEFT(RC[-2], SEARCH(" - ",RC[-2])-1)"

问题是,当我运行代码时,会出现类型不匹配错误。在代码运行之前,代码进入的单元格是空的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-17 12:55:46

VBA使用双引号(")来标记字符串文字。

代码语言:javascript
复制
const saying = "you look nice today"

当您想要在字符串文本中有一个双引号时,就会出现以下问题:

代码语言:javascript
复制
const saying = "you look "nice" today"

在本例中,VBA解释器支持所说常量的值为“您看起来”,就好像您已经编写了:

代码语言:javascript
复制
const saying = "you look "

但是,它到了‘好’这个词,它被混淆了,因为它在语法上是无效的。在VBA中,有几种方法可以将双引号插入字符串文本。第一种方法是使用字符串连接和chr()函数。函数基于该字符从ASCII表返回一个数字值。每个字符都有一个数字值作为它的基础。A是65号,B是66号等等,ASCII号双引号是34个。因此,一份声明:

代码语言:javascript
复制
debug.print chr(65) & chr(66) & chr(34) 

将显示以下内容

代码语言:javascript
复制
AB"

所以你可以:

代码语言:javascript
复制
debug.print "you look " & chr(34) & "nice" & chr(34) & " today"

它会展示:

代码语言:javascript
复制
you look "nice" today

但是我想你会同意我的观点,这种方法看起来非常繁琐,所以在尝试将双引号放入字符串文字时有一条捷径。这似乎有点奇怪,但你需要用两个双引号代替一个双引号。因此,下面的代码:

代码语言:javascript
复制
debug.print "you look ""nice"" today"

将印刷:

代码语言:javascript
复制
you look "nice" today

我希望这个解释能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71512183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档