主页 > 科技生活 >梦幻聚宝盆_在VBA中 “=” 这个运算符(当然是不包括双引号)是什么意思啊? >

梦幻聚宝盆_在VBA中 “=” 这个运算符(当然是不包括双引号)是什么意思啊?

在VBA中 “:=” 这个运算符(当然是不包括双引号)是什么意思啊?
:=好像是PASCAL里面的赋值运算符吧,VB里面MS没有的样子。VBA 似乎没有 := 符,我试,但是 Visual Basic 开发软件里有。

下面是我的认

通常在 VB 里,我们会声些有参数的函数(或子过程),例如:

Function SayHello(Who)
MsgBox "Hello, " & Who & "!", vbInformation
End Function

然后调用时会这样写:
SayHello "Jack"

这是最简单的函数之一。但如果遇到下面的函数:

Function Difficult(A, Optional B, Optional C, Optional D, E, F, G, H, I)

那就麻烦了! 除 B, C, D 参数外,其他都是必填参数。那么调用时,代码就会这样:

Difficult "Bill Gates", , , , "Microsoft", "Macromedia", "...", "...", "..."

这行代码的前面几个连续逗号是因为省略了可选参数而造成的,这样就会降低程序的可读性,也难于维护(这就和在 C++ 里随意将代码乱写、缩进次序不分的现象一样糟糕)。所以,可以采用 := 运算符来优化这行代码:

Difficult A := "Bill Gates", E := "Microsoft", F := "Macromedia", G := "...", H := "...", I := "..."

这种代码只说出了必填参数的实参,而没有说明可选参数。所以代码就比较直观了。

起初我也搞不懂 := 是啥,还想到了这是 Authorware 里面的赋值运算符……晕!!后来自己实践才知道有这样的作用……所以,实践十分重要!!!

至于这个运算符的名称,我也不知道,暂且叫“参数赋值符”吧!本回答被提问者采纳
专家您好,vba下如何打开路径名带空格的目录,双引号""的转义符
完全可以用其法!
而不必用sheel来目录
打开目录的在于对其下的文件或者文件夹操作!!!
而VBA有很多方法可以直接操作文件和文件夹,而不必打开目录
如果是改变当前目录也完全可以用CHDIR
虽然没有回答楼主的问题,但是个人觉得如果有直接操作的方法,建议采用直接指定绝对目录操作文件等等,而不必先打开目录.
如果非要这么做,可以这样
cdstr="E:\my 4s"
Shell "explorer " & cdstr
vba正则表达式如何匹配引号
那串应该是 string=

吧?

正则:
\w+\s*=\s*\<\s*div\s*class\s*=\s*\"(.*)\"

更就:
class\s*=\s*\"(.*)\"

捕获的内容存在了 $1 分组里了本回答被提问者采纳
vba excel 去掉单元格中隐藏着的双引号或单引号 (多列含有,希望得到一次性清楚)


查找替换功能应该可以实现吧!追问

具体操作呢?能讲一下?谢谢追答

选中待替换的区域,(ctrl+F) 查找内容 “ 稍后换成‘替换为 为空

Sub mysub()
Dim rng As Range
For Each rng In UsedRange
If InStr(1, rng.Value, "'", vbTextCompare) <> 0 Or InStr(1, rng.Value, Chr(34), vbTextCompare) <> 0 Then
rng = Application.WorksheetFunction.Substitute(rng.Value, "'", "")
rng = Application.WorksheetFunction.Substitute(rng.Value, Chr(34), "")
End If
Next
End Sub追问

f8,运行到第三行中报错。

追答

Sub mysub()
Dim rng As Range
For Each rng In sheets("sheet1")UsedRange'指定某个表格的使用区域
If InStr(1, rng.Value, "'", vbTextCompare)0 Or InStr(1, rng.Value, Chr(34), vbTextCompare)0 Then
rng = Application.WorksheetFunction.Substitute(rng.Value, "'", "")
rng = Application.WorksheetFunction.Substitute(rng.Value, Chr(34), "")
End If
Next
End Sub


上一篇: 下一篇: