Range.TextToColumns 方法 (Excel)

會將一個包含文字的儲存格欄剖析至數個欄。

語法

運算式TextToColumns (DestinationDataTypeTextQualifierConsecutiveDelimiterTabSemicolonCommaSpaceOtherOtherCharFieldInfoDecimalSeparatorThousandsSeparatorTrailingMinusNumbers)

expression 代表 Range 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Destination 選用 Variant 會指定 Microsoft Excel 放置結果之位置的 Range 物件。 如果範圍大於單一儲存格,會使用左上角的儲存格。
DataType 選用 XlTextParsingType 要分割成多欄的文字格式。
TextQualifier 選用 XlTextQualifier 指定要使用單引號、雙引號或無引號做為文字限定詞。
ConsecutiveDelimiter 選用 Variant True 是表示 讓 Excel 將連續分隔符號視為一個分隔符號。 預設值為 False
Tab 選用 Variant 若為 True 使 DataType 成為 xlDelimited ,並使定位字元成為分隔符號。 預設值為 False
Semicolon 選用 Variant 若為 TrueDataType 成為 xlDelimited 並使分號成為分隔符號。 預設值為 False
Comma 選用 Variant 若為 True ,使 DataType 成為 xlDelimited ,並使逗號成為分隔符號。 預設值為 False
Space 選用 Variant 若為 True ,使 DataType 成為 xlDelimited ,並使空白字元成為分隔符號。 預設值為 False
其他 選用 Variant 若為 True ,使 DataType 成為 xlDelimited ,並使 OtherChar 引數指定的字元成為分隔符號。 預設值為 False
OtherChar 選用 Variant 如果 Other 為 True,則為 必要; Other 為True時的分隔符號。 如果指定了一個以上的字元,只會使用字串中的第一個字元,並且忽略其餘的字元。
FieldInfo 選用 Variant 包含個別資料欄剖析資訊的陣列。 解譯取決於 DataType的值。

當分隔資料時,此引數為二元素陣列的陣列,其中每個二元素陣列都會為特定欄指定轉換選項。 第一個元素是 (1 型) 的資料行編號,而第二個元素是其中一個 XlColumnDataType 常數,指定如何剖析資料行。
DecimalSeparator 選用 Variant Microsoft Excel 在識別數字時使用的小數分隔符號。 預設值為系統設定。
ThousandsSeparator 選用 Variant Excel 使用的是千分位分隔符號。 預設值為系統設定。
TrailingMinusNumbers 選用 Variant 以負號字元開始的數字。

傳回值

Variant

備註

以下表格所示為使用不同匯入設定將文字匯入 Excel 中的結果。 數值結果顯示在最右方的欄中。

系統小數點分隔字元 系統千分位分隔符號 小數分隔符號值 千分位分隔符號值 原始文字 儲存格的值 (資料類型)
期間 逗號 逗號 間隔 123.123,45 123,123.45 (數值)
間隔 逗號 逗號 逗號 123.123,45 123.123,45 (文字)
逗號 間隔 逗號 間隔 123,123.45 123,123.45 (數值)
間隔 逗號 間隔 逗號 123 123.45 123,123.45 (文字)
間隔 逗號 間隔 空格 123 123.45 123,123.45 (數值)

只有在安裝並選取 [臺灣語言支援] 時,才使用XlColumnDataType列舉的xlEMDFormat常數。 xlEMDFormat 常數指定使用台灣年代資料。

欄識別符號可以任何順序排列。 如果某一特定欄的輸入資料中沒有指定的欄規範,那麼該欄會以 xlGeneralFormat 設定進行剖析。 本範例會略過資料來源中的第三欄、以文字格式剖析第一欄,以及使用 xlGeneralFormat 設定剖析其餘的欄。

 Array(Array(3, 9), Array(1, 2))

如果來源資料有固定寬度的欄,該欄每個兩元素陣列的第一個元素將指定列中起始字元的位置 (以整數的類型,0 表示第一個字元)。 雙元素陣列的第二個元素會將資料行的剖析選項指定為 1 到 9 之間的數位,如先前所列。

下列範例從固定寬度檔案中剖析出兩欄,第一欄從行起始處開始,長度為 10 個字元。 第二欄從第 15 個字元開始,直至行尾。 為了避免在位置 10 與位置 15 之間包含字元,Microsoft Excel 新增略過欄項目。

Array(Array(0, 1), Array(10, 9), Array(15, 1))

範例

本範例會將剪貼簿的內容 (其中包含以空格分隔的文字表格) 轉換為 Sheet1 上的個別欄。 您可以用 [記事本] 或 WordPad (或其他文字編輯器) 來建立簡單的以空格分隔的表格,將該文字表格複製到 [剪貼簿],再切換到 Microsoft Excel,最後再執行此範例。

Worksheets("Sheet1").Activate 
ActiveSheet.Paste 
Selection.TextToColumns DataType:=xlDelimited, _ 
 ConsecutiveDelimiter:=True, Space:=True

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應