VBA_常用命令_总结

字符串操作

字符串长度

用 len() 函数获得一个字符串长度

Public Sub  点点didi12()    
     my_string = "diandian didi"
     str_len = Len(my_string)
     Debug.Print str_len 
End Sub

运行一个,就可以在 立即窗口中看到长度值
VBA_常用命令_总结_第1张图片

是否包含某个字符

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的值试试看

截取字符

left() mid() ,right() 截取字符串.
VBA_常用命令_总结_第2张图片

字符替换成其它字符

使用 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

运行结果:
VBA_常用命令_总结_第3张图片## 按照字符分割
使用 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

窗口操作Form

窗口隐藏以及显示后可以编辑表格

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"

表格显示

不加命令,依据字体显示红绿灯状态,如下:
VBA_常用命令_总结_第4张图片

VBA_常用命令_总结_第5张图片

你可能感兴趣的:(VBA)