条件IF不匹配

时间:2019-04-08 19:52:17

标签: vba if-statement conditional

我对有条件的IF有疑问,我想知道您是否可以帮助我解决该问题。

我有两张纸;

  • 第1张-一张桌子(TbAssign)
  • 第2表(库存)–一个表(InventoryDe​​tailTbl)
  • 我创建了一个宏,用于将工作表2中的某些列复制并粘贴到工作表Sheet1中。当条件为列#33上的“分类”时。宏运行良好。没问题(将“分类”的行移到Sheet1)。
  • 我遇到的问题是条件不匹配时(第33列不包含“ Triage Triage”一词,因此,宏会将所有行复制到sheet1,
  • 我试图在IF条件下编写代码,但是没有用。

您能否帮助我理解在条件不匹配时如何编写此宏?

Sub Update_Inventory()

Application.ScreenUpdating = False
Dim lrow As Long
Dim dstar As Double
dstar = Timer

    ThisWorkbook.Activate
    lrow = Worksheets("Sheet1").Cells(Worksheets("Sheet2").Rows.Count, 4).End(xlUp).Row

    lrow = lrow + 1

    Worksheets("Inventory").Select

    ***' I have tried to write a line macro IF condition

        'IF ActiveSheet.Range("InventoryDetailTbl['#33]").Value = "Triage" Then***

          With ActiveSheet.ListObjects("InventoryDetailTbl")
            .Range.AutoFilter Field:=33, _
                Criteria1:="Triage"
            Union(.ListColumns(2).DataBodyRange, _
             .ListColumns(3).DataBodyRange, _
             .ListColumns(4).DataBodyRange, _
             .ListColumns(6).DataBodyRange, _
             .ListColumns(8).DataBodyRange).Copy
         End With

        Worksheets("Sheet1").Select
        Range("D" & lrow).PasteSpecial

        Else

        MsgBox "There isn't new items to move"


        End if

         Worksheets("Inventory").Select

            With ActiveSheet.ListObjects("InventoryDetailTbl")
                .Range.AutoFilter Field:=33
            End With


        Worksheets("Sheet1").Select


  Application.ScreenUpdating = True


End Sub

0 个答案:

没有答案