1. excel vba 定义字符串
Excel VBA中判断变量包含特定字符串,一般用vba like函数进行判断。
Like运算符是字符串比较时经常使用的运算符,也是VBA较难掌握的运算符。
语法:
结果 = 字符串 Like 模式
如果字符串与模式匹配,结果为True,否则为False。但是如果Like两端的字符串和模式有一个为Null,则结果为Null。
VBA内建的模式匹配功能提供了丰富的字符串比较方式,在模式表达式中可以使用通配符、字符列表(或字符区间)的任何组合来匹配字符串。
模式中的字符 与模式匹配的字符串中的字符
? 任何单一字符
* 零个或多个字符
# 任何一个数字(0-9)
[字符列表] 字符列表中的任何一个字符
[!字符列表] 不在字符列表中的任何一个字符
其它字符(串) 与自身匹配
1、Like在字符串比较时受Option Compare语句的影响,在默认情况下(Option Compare Binary),字符比较根据内部二进制表示法(ASCII码)进行,是区分大小写的,此时 "A" Like "a" 的结果为False。如果声明了Option Compare Text,则不区分大小写比较,"A" Like "a" 的结果为True。后面的讨论假设默认情况下。
2.如果模式中没有使用通配符(?、*、#)和字符列表,此时Like运算符等价于=(等号)运算符。下面表达式的结果相同。s Like "AB"s = "AB"
3.字符列表
理解字符列表的用法是学会Like的难点,所以,下面我会多花些笔墨帮你理解它。
(1)一个字符列表匹配的是字符串中的一个字符,不管字符列表中实际有多少个字符。
"A" Like [ABCDEGHIJ2345] 结果为True
"AB" Like [ABCDEGHIJ2345] 结果为False
唯一的例外是[]被看作长度为零的字符串。
(2)字符列表中的单个字符,没有顺序要求,上面[ABCDEGHIJ2345]和[ACDEGHIJ2345B]
[3ABCDEGHIJ245]...等等是一样的表达。
(3)字符列表中一段连续的字符(称为区间,一个字符列表可以有多个区间,广义上,单个字符也可被看作一个区间),可以使用连字符(-,减号)简化表达式,如上面的表达式[ABCDEGHIJ2345]可以简化为[A-EG-J2-5],连字符要遵循从小到大的顺序(升序),即连字符(-)右端的字符应大于左端的字符,如其中的A-E不能写成E-A,后者系统会报错。但多个区间之间没有顺序要求,这意味着[G-J2-5A-E]、[2-5G-JA-E]...等是同一表达。
2. vba删除特定字符
1、选中要进行数据筛选的区域(列),点击“开始--突出显示--文本--包含”,输入要删除行的关键字后,确认。表格中会将筛选出来的单元格进行有颜色的突出显示。
2、对有突出显示的数据列,进行数据筛选。按照颜色进行筛选显示。
3、此时,筛选后的数据就是你要的单元格中包含指定字符的所有行。直接选中所有行,然后删除。取消筛选条件后,剩下的就是你要的数据。如果还有第二指定字符的单元格要删除,可以反复进行多次。
4、对于没有安装vba,不会使用宏的人来说,这个方法也是可以达到效果的。
3. excel vba 替换字符
1、首先我们打开一个工作样表作为例子。 2、我们使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub rename() Name "<工作簿路径>\<旧名称>.xls" As "<工作簿路径>\<新名称>.xls"End Sub。 3、我们知道在excel中保存一个文件为另一个文件时可以重新命名,save as 就是本例中as 代码的作用。name是命名函数,所以name as 就是将文件重命名。 4、不过需要注意的是,name改名修改的文件是未打开文件,如果是打开的文件直接运行代码的话,程序会报错。 5、文件的名称需要使用双引号包括起来,需要填写完整的路径和文件名称,包括文件的后缀名。大家需要注意文件的后缀名是需要通过系统设置来显示的。 6、最后,使用name重命名文件只要是符合未打开这一要素,就可以改名任何文件,包括但不限于excel的文件。当然后缀也可以修改,但是会以默认的关联程序打开。
4. VBA的保留字
假设把 sheet1 中A1单元格赋值给X变量,语句如下:
X = sheets(1).range("A1")
假设X经过计算后,得到一个变量值Y,那么把Y赋值给A1,语句为:
sheets(1).range("A1")=Y
这样就实现了单元格与变量之间的相互赋值
关于此例中涉及到的VBA中变量的相关知识:
1、什么是变量
变量是一个命名的内存位置。是在程序或代码运行过程中,用于临时存储数据,并且其存储的数据可以根据需要发生改变的一个命名项目。
变量由名称(变量名)和数据类型指定:
变量名——用来引用变量
数据类型——确定变量所能存储信息的种类以及所占存储空间的大小
2、变量的命名规则
(1)名称是由字母(A-Z,a-z)或数字和下划线“_”的任意组合。(在Excel 2002以后的版本中也可以包含中文);最后一个字符可以是类型说明符;
(2)变量名的长度不得超过255个字符
(3)变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别的作用范围 例如一个过程、一个窗体等等;
(4)变量名不能是VBA中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名。
说明:
(1)变量名是不区分大小写的。如ABC、aBc、abc等都是一样的;
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称;
(3)根据需要混合使用大小写字母和数字。如果需要使用多单词组,变量中每个单词的第一个字母大写,例如:DataTemp表示临时数据,也可以两个单词中下划线分隔,例如:Last_Num;
(4)对于变量名也有更好的建议,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如strWorksheet as string表用来示工作表名,前缀str表示当前变量的类型。
5. vba删除单元格内指定的字符
Sub MacroTest()
With Selection
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.ClearContents
End With
End Sub
6. excel保存
1.
编辑自己需要的数据。
2.
打开excel开始菜单。
3.
选择保存。
- 相关评论
- 我要评论
-