【Excel VBA 筆記】String 字串

更新於 發佈於 閱讀時間約 10 分鐘

Excel VBA 字串 (String) 詳細介紹

在 VBA 中,字串 (String) 是一種資料類型,用於儲存文字資訊,例如姓名、地址、訊息等。以下將詳細介紹 VBA 字串的各種操作與應用。


1. 字串的基本概念



(1) 字串的宣告與賦值

Dim myString As String  ' 宣告一個字串變數
myString = "Hello VBA!" ' 賦值
  • 字串必須用 雙引號 " " 包圍。
  • 可以是空字串 "",表示沒有內容。



(2) 字串的連接 (Concatenation)

使用 & 或 + 連接字串(建議使用 &,避免與數學運算混淆):

Dim firstName As String, lastName As String, fullName As String
firstName = "John"
lastName = "Doe"
fullName = firstName & " " & lastName ' 結果:"John Doe"

2. 字串的常用操作



(1) 取得字串長度 (Len)

Dim text As String
text = "Excel VBA"
MsgBox Len(text) ' 輸出:8



(2) 轉換大小寫 (UCaseLCase)

Dim originalText As String
originalText = "Hello World"
MsgBox UCase(originalText) ' 輸出:"HELLO WORLD"
MsgBox LCase(originalText) ' 輸出:"hello world"



(3) 截取子字串 (LeftRightMid)

  • Left(字串, 長度):從左邊開始截取。
  • Right(字串, 長度):從右邊開始截取。
  • Mid(字串, 起始位置, 長度):從中間截取。
Dim exampleText As String
exampleText = "ABCDEFG"

MsgBox Left(exampleText, 3) ' 輸出:"ABC"
MsgBox Right(exampleText, 3) ' 輸出:"EFG"
MsgBox Mid(exampleText, 2, 4) ' 輸出:"BCDE"



(4) 尋找字串位置 (InStr)

Dim searchText As String
searchText = "Find the word in this sentence."
MsgBox InStr(searchText, "word") ' 輸出:10"word" 起始位置)
  • 如果找不到,返回 0



(5) 替換字串 (Replace)

Dim original As String
original = "I like apples."
MsgBox Replace(original, "apples", "oranges") ' 輸出:"I like oranges."



(6) 去除空白 (TrimLTrimRTrim)

Dim dirtyText As String
dirtyText = " Excel VBA "
MsgBox "[" & Trim(dirtyText) & "]" ' 輸出:"[Excel VBA]"(去頭尾)
MsgBox "[" & LTrim(dirtyText) & "]" ' 輸出:"[Excel VBA ]"(去左邊)
MsgBox "[" & RTrim(dirtyText) & "]" ' 輸出:"[ Excel VBA]"(去右邊)



(7) 分割字串 (Split)

Dim csvData As String
csvData = "Apple,Orange,Banana"
Dim fruits() As String
fruits = Split(csvData, ",") ' 用逗號分割成陣列

MsgBox fruits(0) ' 輸出:"Apple"
MsgBox fruits(1) ' 輸出:"Orange"

3. 字串與數值的轉換



(1) 字串轉數字 (CIntCLngCDblVal)

Dim numStr As String
numStr = "123"
Dim num As Integer
num = CInt(numStr) ' 轉成 Integer

' Val 函數會讀取字串開頭的數字
MsgBox Val("100 points") ' 輸出:100



(2) 數字轉字串 (CStrFormat)

Dim number As Integer
number = 100
Dim strNum As String
strNum = CStr(number) ' 轉成字串 "100"

' 使用 Format 控制顯示格式
MsgBox Format(1234.567, "0.00") ' 輸出:"1234.57"(四捨五入)

4. 特殊字元與跳脫字元


  • 換行符號vbNewLine 或 Chr(10) & Chr(13)
  • Tab 鍵vbTab 或 Chr(9)
  • 雙引號:需要用兩個雙引號表示 ""
MsgBox "Line 1" & vbNewLine & "Line 2"  ' 換行顯示
MsgBox "He said, ""Hello""" ' 輸出:He said, "Hello"

5. 字串的進階應用


(1) 檢查字串是否為空

Dim checkStr As String
checkStr = ""
If checkStr = "" Then
MsgBox "字串是空的"
End If

' 或使用 Len 函數
If Len(checkStr) = 0 Then
MsgBox "字串是空的"
End If



(2) 字串比較 (StrComp)

Dim result As Integer
result = StrComp("apple", "APPLE", vbTextCompare) ' 不區分大小寫
If result = 0 Then
MsgBox "字串相同"
End If
  • vbBinaryCompare:區分大小寫(預設)。
  • vbTextCompare:不區分大小寫。



(3) 字串反轉 (自訂函數)

Function ReverseString(ByVal text As String) As String
Dim i As Integer
Dim reversed As String
For i = Len(text) To 1 Step -1
reversed = reversed & Mid(text, i, 1)
Next i
ReverseString = reversed
End Function

MsgBox ReverseString("VBA") ' 輸出:"ABV"

6. 實際應用範例


(1) 從儲存格讀取字串並處理

Sub ProcessCellText()
Dim cellText As String
cellText = Range("A1").Value ' 讀取 A1 儲存格內容

' 檢查是否包含特定關鍵字
If InStr(cellText, "重要") > 0 Then
MsgBox "此訊息包含「重要」!"
End If
End Sub



(2) 格式化日期字串

Sub FormatDateExample()
Dim today As Date
today = Date ' 取得今天日期

Dim dateStr As String
dateStr = Format(today, "yyyy/mm/dd") ' 格式化為 "2023/10/25"

MsgBox "今天是:" & dateStr
End Sub

總結

  • 字串 (String) 用於儲存文字,使用 " " 包圍。
  • 常用操作:連接 (&)、截取 (LeftRightMid)、搜尋 (InStr)、替換 (Replace)。
  • 轉換函數:CStr(轉字串)、CInt/Val(轉數字)。
  • 特殊字元:vbNewLine(換行)、""(表示雙引號)。
  • 進階應用:字串比較 (StrComp)、分割 (Split)、反轉 (自訂函數)。



留言
avatar-img
留言分享你的想法!
avatar-img
宗的筆記
18會員
704內容數
我的學習筆記,用來記錄自己覺得重要的事情,所有的筆記會動態更新來完善。 用 AI 補助整理重點。
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
商業簡報不僅僅是呈現數據,更需要深入瞭解數據分析及有效的工具運用。本文探討於Excel中使用不同函數來改善數據處理效率,包括IF、IFS、VLOOKUP、XLOOKUP及INDEX與MATCH的結合,幫助商業人士更好地從數據中提取洞見,助力業務增值,學習優化數據分析過程,讓您的商業簡報更具影響力。
Thumbnail
商業簡報不僅僅是呈現數據,更需要深入瞭解數據分析及有效的工具運用。本文探討於Excel中使用不同函數來改善數據處理效率,包括IF、IFS、VLOOKUP、XLOOKUP及INDEX與MATCH的結合,幫助商業人士更好地從數據中提取洞見,助力業務增值,學習優化數據分析過程,讓您的商業簡報更具影響力。
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
一維條碼 (Barcode) 是最常見和最早期的條碼形式,主要由一組平行的黑色條紋和空白間隔組成,用於表示數字或字符數據。這些條碼主要用於產品識別和管理,廣泛應用於零售、物流和庫存管理等領域。 一維條碼的特點 結構簡單:由一系列寬窄不同的條紋和空白間隔組成,數據以水平排列的方式表示。
Thumbnail
一維條碼 (Barcode) 是最常見和最早期的條碼形式,主要由一組平行的黑色條紋和空白間隔組成,用於表示數字或字符數據。這些條碼主要用於產品識別和管理,廣泛應用於零售、物流和庫存管理等領域。 一維條碼的特點 結構簡單:由一系列寬窄不同的條紋和空白間隔組成,數據以水平排列的方式表示。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News