用 len() 函数获得一个字符串长度
Public Sub 点点didi12()
my_string = "diandian didi"
str_len = Len(my_string)
Debug.Print str_len
End Sub
Public Sub diandiandidi12()
my_string = "diandian didi"
my_exp = "an"
Index = InStr(my_string, my_exp)
If Index > 0 Then
Debug.Print Index
Else
Debug.Print "sorry ,no find you exp char"
End If
End Sub
如果字符串中有你需要的字符, 就会返回该字符第一次出现的位置, 如果没有,就说下sorry.运行结果如下, 你也可以复制该代码,改下 my_exp的值试试看
使用 replace() 把字符串中的某个字符替换成其它字符. 接下来把字符串中的an 替换成love
Public Sub diandiandidi12()
my_string = "start diandian didi end"
find_char = "an"
replace_char = "love"
replace_result = Replace(my_string, find_char, replace_char)
Debug.Print replace_result
End Sub
运行结果:
## 按照字符分割
使用 split() 把字符串按某个字符分割, 接下来把字符串按 an字符进行分割
Public Sub diandiandidi12()
my_string = "startdiandiandidiend"
split_char = "an"
split_results = Split(my_string, split_char, -1)
For Each result In split_results
Debug.Print result
Next
End Sub
运行后如下:
split_results = Split(my_string, split_char, -1) 这句中, 最后面的 -1 ,表示返回所有的分割结果, 这里看到,返回了三个分割的结果.
Set row_s1 = Sheets("sheet3").Columns("A").Find(“abc”, LookAt:=xlPart)
‘在A列中查找到数值“abc”然后返回数值。
If row_s1 Is Nothing Then
Else
For J = 2 To 35
If Sheets("sheet1").Range("J" & i).Value = Sheets("sheet3").Cells(2, J).Value Then
Sheets("sheet3").Cells(row_s1.Row, J).Value = Sheets("sheet1").Range("N" & i).Value
Exit For
End If
Next
End If
vba中快速定义数组,然后进行使用。
Dim aaa as varible
aaa=Array(1,a,d,d)
直接移动一个文件以及移动多个文件,使用通配符,
可在VBA中直接引用,单个文件的copy。
语法:
FileCopy 源文件名,目标文件名
注:如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误。
示例:
FileCopy 当前路径, 目标路径
方法二:CopyFile
需调用FileSystemObject,多个文件可使用通配符。
语法:
object.CopyFile source, destination[, overwrite]
CopyFile 方法语法有如下几部分:
object 必需的。object始终是一个 FileSystemObject 的名字。
source 必需的。指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符。
destination 必需的。指明 source 中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。
overwrite 选项的。Boolean 值,它表示存在的文件是否被覆盖。如果是 True,文件将被覆盖;如果是 False,它们不被覆盖。缺省值是 True。注意如果 destination 具有只读属性设置,不论 overwrite 值如何,CopyFile 都将失败。
示例:
Set Fso = CreateObject(“Scripting.FileSystemObject”)
Fso.CopyFile 当前路径, 目标路径
Sub move_F()
Dim path_Old, path_new, k ,text_aa
path_Old = "C:\Users\lsncszh\Desktop\New folder - Copy\"
path_new = "C:\Users\lsncszh\Desktop\0001\"
f = Dir(path_Old, vbDirectory)
f = Dir(path_Old & "*.*") ‘获取文件目录,文件名
Do Until f = ""
Range("D" & 1) = f
Range("E1") = Left(Range("D1"), 10)
Set row_s1 = Sheets("sheet1").Columns("A").Find(Range("E1"), LookAt:=xlPart)
If row_s1 Is Nothing Then
Else
Dim fso As Object
Set fso = CreateObject("Scripting.FilesyStemObject")
fso.CopyFile path_Old & f, path_new
Set fso =nothing
End If
f = Dir
Loop
End Sub
Public Sub 移动文件夹()
Dim myFolder As String
Dim myNewFilePath As String
Dim fso As Scripting.FileSystemObject
myFolder = ThisWorkbook.Path & “\myfolder” '要移动的文件夹
myNewFilePath = ThisWorkbook.Path & “\testfile” '要移动的位置
Set fso = New Scripting.FileSystemObject
If fso.FolderExists(myFolder) Then
fso.MoveFolder myFolder, myNewFilePath
MsgBox "已经将文件夹 " & myFolder & " 移到了文件夹 " & myNewFilePath
Else
MsgBox “要移动的文件夹不存在”
End If
Set fso = Nothing
End Sub
Kill File_name
Function IsFileExists(ByVal strFileName As String) As Boolean
If Dir(strFileName, 16) <> Empty Then
IsFileExists = True
Else
IsFileExists = False
End If
End Function
ActiveWorkbook.RemovePersonalInformation = False
保存文件时如果存在同名文件,系统会提示是否覆盖,用用下列语句就不会提示了:
在文件处理开始时,关闭报警:
Application.DisplayAlerts = False
在文件保存后,再打开报警:
Application.DisplayAlerts = True
UserForm11.Hide
UserForm10.Show vbModeless
需要对文件进行定时关闭或者,指定时间执行某些的程序。
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:20"), "ThisWorkbook.MyMacrodd"
End Sub
Sub MyMacrodd()
ThisWorkbook.Close
End Sub
Shell "taskkill /f /im AcroRd32.exe"