VBA可以像Python一样接受多行字符串吗?
在Python中,我可以使用“”创建多行字符串 例如:VBA可以像Python一样接受多行字符串吗?,python,vba,Python,Vba,在Python中,我可以使用“”创建多行字符串 例如: x = """ Hello World """" 有没有办法用VBA做到这一点?没有,VBA没有多行字符串。每当我想在VBA中使用多行字符串时,这都会让我发疯,所以我编写了一个小Python脚本,从stdin读取VBA,然后吐出VBA,您可以复制/粘贴到VBA编辑器中 生成多行.py: import fileinput print 'Dim str As String' print 'str = ""' to_print = [] f
x = """
Hello
World """"
有没有办法用VBA做到这一点?没有,VBA没有多行字符串。每当我想在VBA中使用多行字符串时,这都会让我发疯,所以我编写了一个小Python脚本,从stdin读取VBA,然后吐出VBA,您可以复制/粘贴到VBA编辑器中 生成多行.py:
import fileinput
print 'Dim str As String'
print 'str = ""'
to_print = []
for line in fileinput.input():
line = line.strip('\n')
line_vba = 'str = str & "%s"' % line.replace('"','""')
to_print.append(line_vba)
all_lines = " & vbCrLf\n".join(to_print)
print all_lines
例如,如果我在列出helper
的内容时有以下内容:
$ ls -la helper/
total 8
drwxr-xr-x@ 3 ben staff 102 Apr 19 14:03 .
drwxr-xr-x@ 7 ben staff 238 Apr 19 14:03 ..
-rw-r--r--@ 1 ben staff 262 Apr 19 13:56 make_vba_multiline.py
当我将其导入脚本时,我得到:
$ ls -la helper/ | python helper/make_vba_multiline.py
Dim str As String
str = ""
str = str & "total 8" & vbCrLf
str = str & "drwxr-xr-x@ 3 ben staff 102 Apr 19 14:03 ." & vbCrLf
str = str & "drwxr-xr-x@ 7 ben staff 238 Apr 19 14:03 .." & vbCrLf
str = str & "-rw-r--r--@ 1 ben staff 262 Apr 19 13:56 make_vba_multiline.py"
如果您想对大量代码进行注释,这是一个备选方案: 在VBA编辑器中,转到
视图
,工具栏
,自定义…
,或右键单击工具栏并选择自定义…
在命令
选项卡下,选择左侧的编辑
菜单
然后大约三分之二的地方有两个图标,注释块
和取消注释块
将它们拖放到工具栏上,然后您就可以轻松地突出显示一段代码,并通过单击按钮将其注释掉和取消注释!VBA语法应适用于该情况
x=vbCrLf&_
vbCrLf&_
“你好”&vbCrLf&_
“世界”与vbCrLf
但是行连续性是有限制的,对于Excel 2010,我是24行。如果您尝试在下面的字符串中再插入一行行连续性
x=vbCrLf&_
vbCrLf&_
“你好”&vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
“世界”与vbCrLf
然后您会收到错误消息:
因此,将字符串拆分为多行的唯一方法如下:
x=vbCrLf&_
vbCrLf&_
“你好”&vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
换行字符
x=x&vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
vbCrLf&_
“世界”与vbCrLf
太糟糕了!:(谢谢你的快速回答!:)如果你的字符串太长,你可以使用字符串连接&
,行继续。
但是你必须使用vbNewLine
来生成包含新行字符的字符串。是的,但是VBA中的行继续是有限制的,对吗?