Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Word VBA可删除空行_Vba_Ms Word - Fatal编程技术网

MS Word VBA可删除空行

MS Word VBA可删除空行,vba,ms-word,Vba,Ms Word,我不熟悉VBA宏,但我有一个word 2016模板,它包含以下部分: Base Amount: $ Service Fee: $ Sales Tax % $ Other tax %: $ Tax 2 %: $ 我的目标是,如果任何一行中缺少金额,则删除该行。我试着录制宏,然后进行更改,但没有成功 更新:下面是您的代码的修改版本,它将旋转通过表的所有行(在MS Word中),并删除第3列和第4列中仅包含“$”的每一行 Option Explicit ' This subroutine w

我不熟悉VBA宏,但我有一个word 2016模板,它包含以下部分:

Base Amount: $ 
Service Fee: $ 
Sales Tax % $
Other tax %: $
Tax 2 %: $ 
我的目标是,如果任何一行中缺少金额,则删除该行。我试着录制宏,然后进行更改,但没有成功


更新:下面是您的代码的修改版本,它将旋转通过表的所有行(在MS Word中),并删除第3列和第4列中仅包含“$”的每一行

Option Explicit

' This subroutine will spin thru all rows of data in a table in MS-Word (except the first row, which is the header).
' If column 3 contains only a '$' AND column 4 is empty, the row will be deleted.
' All rows with only the '$' in column 3 and empty cell 4 will be deleted.

Sub TEST()
Dim i       As Long
'Dim char    As String

    With Selection.Tables(1)
        For i = .Rows.Count To 1 Step -1
            'char = .Cell(i, 3).Range.Text
            'Debug.Print Asc(Mid(char, 1, 1)) & vbTab & Asc(Mid(char, 2, 1)) '& vbTab & Asc(Mid(char, 3, 1))
            'Debug.Print ">" & .Cell(i, 2).Range.Text & "<"
            If Len(.Cell(i, 4).Range.Text) = 2 And Left(.Cell(i, 3).Range.Text, 1) = "$" Then
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub
选项显式
'此子例程将旋转通过MS Word表格中的所有数据行(第一行除外,即标题)。
'如果第3列仅包含“$”且第4列为空,则该行将被删除。
'将删除第3列中只有“$”且第4单元格为空的所有行。
子测试()
我想我会坚持多久
'作为字符串的Dim char
有选择。表(1)
对于i=.Rows.Count,将其设置为1步骤-1
'char=.Cell(i,3).Range.Text
“Debug.Print Asc(Mid(char,1,1))&vbTab&Asc(Mid(char,2,1))”&vbTab&Asc(Mid(char,3,1))

'Debug.Print“>”和.Cell(i,2).Range.Text和“令人失望的是,你没有包括从昨天的重复帖子中获得的任何有用信息:人们仍然希望看到代码,人们仍然需要知道你提供的其他详细信息!你需要明白,信息越多越好!顺便说一句,你的代码昨天起作用了,但是你想要一些你没有分享的东西。Wayne,谢谢你的回复。我昨天已经回复了你的评论,但我想你错过了我的评论。“删除上面的那些…”实际上是什么意思?所有这些?上面只有一个?高于什么?是否有空单元格,或同一行上有多个空单元格?空单元格是否包含$?请准确解释问题所在…谢谢你的回复。。我应该说得更清楚些。我指的是我在我的问题中列出的那些(在这个论坛上)。我真正需要的是,如果假设基本金额:$为空,那么从模板基本金额:$中删除该行。谢谢基本金额:$Service Fee:$Sales Tax%$Other Tax%:$Tax 2%:$Delete of the template或Delete of the table in Word中的实际数据行??非常感谢您,很抱歉问了太多问题。我接受了代码,我需要调整一下。我刚刚意识到值在第4单元,美元符号在第3单元。您应该如何在代码中包含这些内容。。逻辑:如果单元格3为美元符号,单元格4为空,则从模板中删除整行。非常感谢你的帮助。你不知道这对我有什么帮助。。杰夫!再一次谢谢你。由于某种原因,它失败了,它说运行时错误5941“请求的集合成员不存在。”。我真的很感谢你的帮助。你不必为此烦恼。我稍后会试着玩它。非常感谢你。。杰夫·沃森。你桌子的尺寸是多少?你说你至少有4列!!调整代码以反映实际列数…我实际上是从另一个人那里继承的,但它看起来有5列。谢谢你,但我帮不了你。通过引用不存在的列,可以在我的测试中复制您收到的确切错误。说“它看起来有5列”是不可接受的。准确度很简单,而且是必需的。。。数一数!