在Python中,我可以使用"""来创建一个多行字符串。
例如:
x = """
Hello
World """"
有没有办法用VBA做到这一点?
答案 0 :(得分:1)
否,VBA没有多行字符串。
答案 1 :(得分:1)
这让我每次想要在VBA中使用多行字符串时都会疯狂,所以我编写了一个Python脚本,它从stdin中读取并吐出VBA,您可以将其复制/粘贴到VBA编辑器中。< / p>
<强> make_vba_multiline.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"
答案 2 :(得分:0)
如果你想评论很多代码,这是另一种选择:
在VBA编辑器中,转到View
,Toolbars
,Customise...
或右键单击工具栏并选择Customise...
在Commands
标签下,选择左侧的Edit
菜单。
然后大约三分之二的地方有Comment Block
和Uncomment Block
两个图标。
将这些拖放到您的工具栏上,然后您可以轻松访问以突出显示一段代码,并将其注释掉并通过单击按钮取消注释!
答案 3 :(得分:0)
该案例的VBA语法应为
x = vbCrLf & _
vbCrLf & _
"Hello" & vbCrLf & _
"World " & vbCrLf
但是对于Excel 2010来说,续行的限制是有限的。如果您尝试在下面的字符串
中再插入一行换行符x = vbCrLf & _
vbCrLf & _
"Hello" & vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
"World " & vbCrLf
然后你收到错误信息:
因此,唯一的方法是将字符串拆分为多个多行线,如下所示:
x = vbCrLf & _
vbCrLf & _
"Hello" & 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 & _
"World " & vbCrLf