2014-09-03 88 views
0
Sub DelXRows() 
Dim oTbl As Table, oCel As Cell, oRng As Range, StrTxt As String 
StrTxt = "X" 
For Each oTbl In ActiveDocument.Tables 
    For Each oCel In oTbl.Columns(3).Cells 
    Set oRng = oCel.Range 
    oRng.MoveEnd Unit:=wdCharacter, Count:=-1 
    If oRng.Text = StrTxt Then oRng.Rows(1).Delete 
    Next 
Next 
End Sub 

這是我用MS字表中刪除包含「X」的行的函數。現在的問題是,我有一些合併單元格和這個公式是不工作給我的錯誤:MS word公式沒有正確運行給出錯誤運行時錯誤'5992'

運行時錯誤「5992」: 無法訪問單獨列在此集合,因爲該表已混合單元格寬度。

任何可能的方式來刪除此錯誤或忽略合併單元格的行?

回答

0

完全不同的方法如何? (我認爲這將需要一些細化,特別是有關於你如何初始化查找做):

Sub findinTables() 
Dim oFind As Word.Find 
Dim oTbl As Word.Table 
Dim strTxt as String 
strTxt = "X" 
For Each oTbl In ActiveDocument.Tables 
    Set f = oTbl.Range.Find 
    While f.Execute(strTxt) 
    f.Parent.Rows.Delete 
    Wend 
    Set f = Nothing 
Next 
End Sub 
+0

這不是刪除整行,但只能刪除含有「X」 – 2014-09-03 14:56:44

+0

在這裏刪除了整個小區的小區。但我想有一種風險.Parent並不總是相同類型的對象。編號有興趣知道什麼類型名稱(f.Parent)在您的系統上返回。 – 2014-09-03 17:33:44