通过10个选项卡扩展代码

时间:2014-04-11 23:57:45

标签: excel excel-vba vba

我需要在多个标签上运行代码,以便为我的员工提高效率。

我无法让它循环遍历其他表格。

Public Sub PrinterButton_Click()
Dim xBad As Integer

'checks for bad tariffs
For h = 18 To 219 '18 to 219 - number of rows for tariffs
    For ae = 6 To 6 'keep 6to 6 to work
    If Range("AE" & ae) > 0 Then

        If Range("D" & h) = "8473.30.9100" Or Range("D" & h) = "7117.19.6000" Or Range("D" & h) = "7117.90.4500" Or Range("D" & h) = "7117.90.6000" Or Range("D" & h) = "8473309100" Or Range("D" & h) = "7117904500" Or Range("D" & h) = "7117906000" Or Range("D" & h) = "7117906000" Then
            MsgBox "You have a prohibited tariff in row " & h
            xBad = 1

        ElseIf Range("C" & h) = "CN" Or Range("C" & h) = "cn" Or Range("C" & h) = "Cn" Or Range("C" & h) = "cN" Then
            If Range("D" & h) = "8501.61.0000" Or Range("D" & h) = "8507.20.8030" Or Range("D" & h) = "8507.20.8040" Or Range("D" & h) = "8507.20.8060" Or Range("D" & h) = "8507.20.8090" Or Range("D" & h) = "8541.40.6020" Or Range("D" & h) = "8541.40.6030" Or Range("D" & h) = "8501.31.8000" Then
                MsgBox "You have a prohibited tariff from China in row " & h
                xBad = 1
            ElseIf Range("D" & h) = "8501610000" Or Range("D" & h) = "8507208030" Or Range("D" & h) = "8507208040" Or Range("D" & h) = "8507208060" Or Range("D" & h) = "8507208090" Or Range("D" & h) = "8541406020" Or Range("D" & h) = "8541406030" Or Range("D" & h) = "8501318000" Then
               MsgBox "You have a prohibited tariff from China in row " & h
               xBad = 1

           End If

        End If
    Else

    End If
    Next ae
Next h


If xBad <> 1 Then
    Dim Rng As Range
    Dim c As Range
    On Error Resume Next
    Set Rng = Cells.SpecialCells(xlCellTypeConstants, 2)
    For Each c In Rng
        c.Value = UCase(c.Value)
    Next c

    'prints the sheets
    If Range("D194") <> "" Then
        Range("A1:M219").Select
        Selection.PrintOut copies:=1
    ElseIf Range("D150") <> "" Then
        Range("A1:M175").Select
        Selection.PrintOut copies:=1
    ElseIf Range("D106") <> "" Then
        Range("A1:M131").Select
        Selection.PrintOut copies:=1
    ElseIf Range("D62") <> "" Then
        Range("A1:M87").Select
        Selection.PrintOut copies:=1
    Else
        Range("A1:M43").Select
        Selection.PrintOut copies:=1
    End If
End If

Range("C1").Select

End Sub

1 个答案:

答案 0 :(得分:0)

如果你将代码包装在loop to go through all your sheets中,那应该可以解决问题。

从链接页面无耻地窃取。

  Sub WorksheetLoop()

     Dim WS_Count As Integer
     Dim I As Integer

     ' Set WS_Count equal to the number of worksheets in the active
     ' workbook.
     WS_Count = ActiveWorkbook.Worksheets.Count

     ' Begin the loop.
     For I = 1 To WS_Count

        ' Insert your code here.
        'In your loop you can call code, here I activate the sheet and then call
        'Your function 
        ActiveWorkbook.Worksheets(I).Activate
        PrinterButton_Click 

     Next I

  End Sub