excel中VBa应用总结
生活随笔
收集整理的這篇文章主要介紹了
excel中VBa应用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
單元格操作
Range("C4") = 1 '很直觀,不用多解釋了吧
[C4] = 1 '跟Range差不多,但更簡潔
Cells(4,3) = 1 'Cells有2個參數Rowindex和ColumnIndex,分別是行號和列號。注意是先行后列
'Sheets(1).Range("A1").Value = 1 '使用 Sheets(index)訪問工作表(其中 index 是工作表名稱或索引號),這兩句和上面的Range("A1")=1的結果一樣
連續的單元格
[A3:C5] = 2
Cells(11, 1).Resize(2, 3) = 4 'Cells(11,1)返回單元格A11,然后Resize(2,3)把A11向下擴展2行,向右擴展3列,返回區域A11:C12。
Range("C13:E23", "H7:J9") = 3
不連續的單元格
[A18,A20,B19:C19] = 6 '可以用多個逗號分割多個不連續的區域
Range("C13:E23,H7:J9") = 3
參數化
Range(Chr(64 + C1) & R1 & ":" & Chr(64 + C2) & R2) = 10 '這句和上面一句實現的功能一樣,都是設置F7:H9的值為10。
字符串操作
字符串函數
Trim(string) '去掉string左右兩端空白?
Ltrim(string) '去掉string左端空白?
Rtrim(string) '去掉string右端空白?
Len(string) '計算string長度?
Left(string, x) '取string左段x個字符組成的字符串?
Right(string, x) '取string右段x個字符組成的字符串?
Mid(string, start,x) '取string從start位開始的x個字符組成的字符串?
Ucase(string) '轉換為大寫?
Lcase(string) '轉換為小寫?
Space(x) '返回x個空白的字符串?
Asc(string) '返回一個 integer,代表字符串中首字母的字符代碼?
Chr(charcode) '返回 string,其中包含有與指定的字符代碼相關的字符
UBound
字符串比較
Dim strFixedLong As String*100 '定長字符串
StrComp(string1,string2[,compare])
Compare:vbBinaryCompare/0則二進制進行比較;vbTextCompare/1則進行文本進行比較;vbDatabaseCompare/2則適用Microsoft Access,進行基本數據庫信息的比較
返回值:String1<String2,則返回值為-1,=則0,>則1,其中有一個為NULL則為NULL
Sub testStringCompare()
? Dim MyStr1 As String, MyStr2 As String
? Dim MyComp1 As Integer, MyComp2 As Integer, MyComp3 As Integer, MyComp4 As Integer
? MyStr1 = "ABCD"
? MyStr2 = "abcd"
? MyComp1 = StrComp(MyStr1, MyStr2, 1) ? ?'返回 0
? MyComp2 = StrComp(MyStr1, MyStr2, 0) ? ?'返回 -1
? MyComp3 = StrComp(MyStr1, MyStr2) ? ? ? '返回 -1
? MyComp4 = StrComp(MyStr2, MyStr1) & apos ?'返回1
? MsgBox "StrComp(MyStr1, MyStr2, 1)的結果為:" & MyComp1
? MsgBox "StrComp(MyStr1, MyStr2, 0)的結果為:" & MyComp2
? MsgBox "StrComp(MyStr1, MyStr2)的結果為:" & MyComp3
? MsgBox "StrComp(MyStr2, MyStr1)的結果為:" & MyComp4
End Sub
字符串轉換
StrConv(string,conversion,LCID)
conversion參數:vbUpperCase/1,將字符串轉換成大寫
? vbLowerCase/2,則將字符串轉換成小寫;
? vbProperCase/3,則將字符串中每個字的開頭字母轉換成大寫;
? vbUnicode/64,則根據系統的缺省碼頁將字符串轉換成Unicode;
? vbFromUnicode/128,則將字符串由Unicode轉換成系統的缺省碼頁。
Sub testConverseString()
? Dim i As Long
? Dim x() As Byte
? x = StrConv("ABCDEFG", vbFromUnicode) ? '轉換字符串。
? For i = 0 To UBound(x)
? ? Debug.Print x(i)
? Next
End Sub
Sub Test()
? Dim byArray() As Byte
? Dim sString As String
? sString = "Some stuff"
? byArray = StrConv(sString, vbFromUnicode)
End Sub
轉換成字符串類型
MyDouble = 437.324 ? ;MyDouble 為 Double 類型
MyString = CStr(MyDouble) ? ?;MyString 的內容為"437.324"
說明:傳遞給CStr的未初始化的數字數據類型返回“0”,傳遞給CStr的未初始化的日期變量返回“0:00:00”。
Sub CreateString1()
? Dim MyString ?'返回 10 個空格的字符串。
? MyString = Space(10) '將 10 個空格插入兩個字符串中間。
? MyString = "Hello" & Space(10) & "World"
? MsgBox "" & MyString
End Sub
字符串生成
Space(number)
String(number,character)
Range("C4") = 1 '很直觀,不用多解釋了吧
[C4] = 1 '跟Range差不多,但更簡潔
Cells(4,3) = 1 'Cells有2個參數Rowindex和ColumnIndex,分別是行號和列號。注意是先行后列
'Sheets(1).Range("A1").Value = 1 '使用 Sheets(index)訪問工作表(其中 index 是工作表名稱或索引號),這兩句和上面的Range("A1")=1的結果一樣
連續的單元格
[A3:C5] = 2
Cells(11, 1).Resize(2, 3) = 4 'Cells(11,1)返回單元格A11,然后Resize(2,3)把A11向下擴展2行,向右擴展3列,返回區域A11:C12。
Range("C13:E23", "H7:J9") = 3
不連續的單元格
[A18,A20,B19:C19] = 6 '可以用多個逗號分割多個不連續的區域
Range("C13:E23,H7:J9") = 3
參數化
Range(Chr(64 + C1) & R1 & ":" & Chr(64 + C2) & R2) = 10 '這句和上面一句實現的功能一樣,都是設置F7:H9的值為10。
字符串操作
字符串函數
Trim(string) '去掉string左右兩端空白?
Ltrim(string) '去掉string左端空白?
Rtrim(string) '去掉string右端空白?
Len(string) '計算string長度?
Left(string, x) '取string左段x個字符組成的字符串?
Right(string, x) '取string右段x個字符組成的字符串?
Mid(string, start,x) '取string從start位開始的x個字符組成的字符串?
Ucase(string) '轉換為大寫?
Lcase(string) '轉換為小寫?
Space(x) '返回x個空白的字符串?
Asc(string) '返回一個 integer,代表字符串中首字母的字符代碼?
Chr(charcode) '返回 string,其中包含有與指定的字符代碼相關的字符
UBound
字符串比較
Dim strFixedLong As String*100 '定長字符串
StrComp(string1,string2[,compare])
Compare:vbBinaryCompare/0則二進制進行比較;vbTextCompare/1則進行文本進行比較;vbDatabaseCompare/2則適用Microsoft Access,進行基本數據庫信息的比較
返回值:String1<String2,則返回值為-1,=則0,>則1,其中有一個為NULL則為NULL
Sub testStringCompare()
? Dim MyStr1 As String, MyStr2 As String
? Dim MyComp1 As Integer, MyComp2 As Integer, MyComp3 As Integer, MyComp4 As Integer
? MyStr1 = "ABCD"
? MyStr2 = "abcd"
? MyComp1 = StrComp(MyStr1, MyStr2, 1) ? ?'返回 0
? MyComp2 = StrComp(MyStr1, MyStr2, 0) ? ?'返回 -1
? MyComp3 = StrComp(MyStr1, MyStr2) ? ? ? '返回 -1
? MyComp4 = StrComp(MyStr2, MyStr1) & apos ?'返回1
? MsgBox "StrComp(MyStr1, MyStr2, 1)的結果為:" & MyComp1
? MsgBox "StrComp(MyStr1, MyStr2, 0)的結果為:" & MyComp2
? MsgBox "StrComp(MyStr1, MyStr2)的結果為:" & MyComp3
? MsgBox "StrComp(MyStr2, MyStr1)的結果為:" & MyComp4
End Sub
字符串轉換
StrConv(string,conversion,LCID)
conversion參數:vbUpperCase/1,將字符串轉換成大寫
? vbLowerCase/2,則將字符串轉換成小寫;
? vbProperCase/3,則將字符串中每個字的開頭字母轉換成大寫;
? vbUnicode/64,則根據系統的缺省碼頁將字符串轉換成Unicode;
? vbFromUnicode/128,則將字符串由Unicode轉換成系統的缺省碼頁。
Sub testConverseString()
? Dim i As Long
? Dim x() As Byte
? x = StrConv("ABCDEFG", vbFromUnicode) ? '轉換字符串。
? For i = 0 To UBound(x)
? ? Debug.Print x(i)
? Next
End Sub
Sub Test()
? Dim byArray() As Byte
? Dim sString As String
? sString = "Some stuff"
? byArray = StrConv(sString, vbFromUnicode)
End Sub
轉換成字符串類型
MyDouble = 437.324 ? ;MyDouble 為 Double 類型
MyString = CStr(MyDouble) ? ?;MyString 的內容為"437.324"
說明:傳遞給CStr的未初始化的數字數據類型返回“0”,傳遞給CStr的未初始化的日期變量返回“0:00:00”。
Sub CreateString1()
? Dim MyString ?'返回 10 個空格的字符串。
? MyString = Space(10) '將 10 個空格插入兩個字符串中間。
? MyString = "Hello" & Space(10) & "World"
? MsgBox "" & MyString
End Sub
字符串生成
Space(number)
String(number,character)
總結
以上是生活随笔為你收集整理的excel中VBa应用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python机器学习常用包下载安装以及使
- 下一篇: Mybatis动态sql的使用