2010-06-04 53 views
1

我有一大堆格式化的表格很奇怪,因爲當一羣人制作表格時,不能指望tabb在所有表格上都是一致的。Word 2007 - 如何將具有不一致tab的文本轉換爲表格?

例如...我有這個表:2周的cols由11行......但我想那也沒在意列的行數和

space space space **column header** tab tab tab tab **column header** 
tab **data** tab tab tab **data** tab tab 
tab **data** tab tab **data** 
tab **data** tab tab tab tab **data** 
tab **data** tab tab **data** 

目前宏,我有這個宏

Sub ConvertTextToATable() 

    Selection.ConvertToTable Separator:=wdWhite, AutoFitBehavior:=wdAutoFitFixed 

End Sub 

我試過標籤分隔符...但都給出了類似的結果。它每次遇到新的空白字符時都會創建一個新列。我想要的是忽略所有的空白,並在每次遇到文本時創建一個新單元格,並在每次遇到\ n或\ r時創建一個新行。

由於我不能保證每個表的列標題數與數據的列標題數相同,我認爲列的數量應該由原始僞表的文本中的第二行或第三行確定。

回答

1

DerNalia,這需要正則表達式。在您的Office VBA編輯器添加到微軟的VBScript正則表達式5.5的引用: Image of VBA references http://wbtn.net/~david/vba-regex.png

然後,在你的宏中使用正則表達式對象只有一個標籤更換標籤的所有多個實例。然後,您可以像正常一樣使用ConvertToTable命令。

+0

這很神奇......但我仍然需要知道如何忽略文本開始前的空格=/ – NullVoxPopuli 2010-06-04 15:01:41

+0

爲什麼使用正則表達式?您可以使用宏錄製器來錄製Word宏以查找選項卡選項卡並將其替換爲選項卡。 – Fionnuala 2010-06-04 15:03:05

+0

因爲我有像 空間空間**數據**選項卡選項卡**數據** 選項卡**數據**選項卡選項卡**數據** 行我需要正則表達式來刪除第一次出現的空格,並替換其餘的用逗號......是時候提出一個新的問題。 鏈接:http://stackoverflow.com/questions/2975490/using-regex-to-remove-the-first-occurrence-of-white-space-and-then-replace-the-re – NullVoxPopuli 2010-06-04 15:21:26

相關問題