微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VBA:使用 VBA 的 Excel 自动化

如何解决VBA:使用 VBA 的 Excel 自动化

我在 VBA 中为 Excel 工作表中的多个按钮编写了多个脚本,以自动执行相同的流程。我想要的只是让某人审查我的代码并批评其清洁度。提供有关如何使代码更简洁和优化流程的建议会很有帮助。

Private Sub CommandButton1_Click()
 Dim last_row As Double
    Call ModelwithEach
    last_row = Range("F" & Rows.Count).End(xlUp).Row
    Range("AM1").Value = "WithEach"
     Range("AM3:AM" & last_row).Formula = "=F3&R3"
     Range("L3:L" & last_row).Formula = "=VLOOKUP(AM3,'[Indemed datafeed Latest.xlsm]Sheet1'!$A:$B,2,0)"
     Range("M3:M" & last_row).Formula = "=VLOOKUP(AM3,'[Indemed datafeed Latest.xlsm]Sheet1'!$A:$K,11,0)"
     Range("N3:N" & last_row).Formula = "=VLOOKUP(AM3,'[Indemed datafeed Latest.xlsm]Sheet1'!$A:$H,8,0)"
     Cells.SpecialCells(xlCellTypeFormulas,xlErrors).Clear
     
End Sub

Private Sub CommandButton2_Click()
  Dim last_row As Double
 last_row = Range("U" & Rows.Count).End(xlUp).Row
 Range("V3:V" & last_row).Formula = "=VLOOKUP(U3,'[current pricing sheet july 2019 - copy.xlsx]Sheet1'!$A:$B,0)"
 Range("W3:W" & last_row).Formula = "=VLOOKUP(U3,0)"

 Dim Shipping As Double
    Dim i As Double
    Shipping = Range("W" & Rows.Count).End(xlUp).Row
    For i = 3 To Shipping
        If Range("W" & i).Value >= 70 Then
            Range("X" & i).Value = "Free Shipping"
            Range("Y" & i).Value = 0
            Range("Z" & i).Value = "Yes"
        ElseIf Range("W" & i).Value <= 69.99 Then
            Range("X" & i).Value = "Really Flat"
            Range("Y" & i).Value = 6.99
            Range("Z" & i).Value = "No"
        Else
        End If
        Next i
     


End Sub

Private Sub CommandButton3_Click()
Dim last_row As Double
Dim i As Double
last_row = Range("F" & Rows.Count).End(xlUp).Row
    For i = 3 To last_row
        If Range("N" & i).Value > Range("K" & i).Value Then
            Range("G" & i).Value = "McKesson"
        ElseIf Range("K" & i).Value > Range("N" & i).Value Then
            Range("G" & i).Value = "Independence Medical"
        End If
        Next i

    Range("XFD2:XFD" & last_row).Formula = "=UPPER(LEFT(Q2,2))"
    Range("S3:S" & last_row).Formula = "=PROPER(VLOOKUP(F3,'MediUSA wound Care Feed.csv'!$A:$G,7,0))"
    
    For i = 2 To last_row
        Range("T" & i).Value = Range("R" & i) & "/" & Range("S" & i)
    Next i
    
    
'If Range("M2:M" & last_row).Value = "Case" Then
'    Range("B2:B" & last_row).Formula = "=UPPER(LEFT(Q2,2))&F2"
'    Range("B2:B" & last_row).Value = Range("B" & i).Value & "-CS"
'ElseIf Range("M" & i) = "Box" Then
'    Range("B2:B" & last_row).Formula = "=UPPER(LEFT(Q2,2))&F2"
'    Range("B" & i).Value = Range("B" & i).Value & "-BX"
'   End If
'   Next i
For i = 2 To last_row
  If Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Case" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-CS"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Each" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & ""
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Box" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-BX"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Pair" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-PR"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Package" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-PK"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Carton" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-CT"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Dozen" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-DZ"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Vial" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-VL"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Roll" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-RL"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Tray" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-TR"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Can" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-CN"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Jar" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-JR"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Bag" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-BG"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "gallon" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-GL"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Set" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-ST"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Kit" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-KT"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Gross" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-GR"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Pad" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-PD"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Tube" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-TU"
        ElseIf Range("F" & i).Value = Range("F" & i).Value And Range("S" & i) = "Sleeve" Then
            Range("B" & i).Value = Range("XFD" & i) & Range("F" & i) & "-SL"
        Else
            Range("B" & i).Value = ""
        End If
        Next i
        
End Sub

Private Sub CommandButton4_Click()
Dim last_row As Double
Dim i As Double
last_row = Range("F" & Rows.Count).End(xlUp).Row
    For i = 2 To last_row
              If InStr(1,UCase(Range("B" & i)),"-MI") <> 0 Then
                Range("F" & i).Value = Range("F" & i + 1)
                Range("G" & i).Value = Range("G" & i + 1)
                Range("U" & i).Value = Range("U" & i + 1)
                Range("V" & i).Value = Range("V" & i + 1)
                Range("W" & i).Value = Range("W" & i + 1)
                Range("X" & i).Value = Range("X" & i + 1)
                Range("Y" & i).Value = Range("Y" & i + 1)
                Range("Z" & i).Value = Range("Z" & i + 1)
                Range("D" & i).Value = "Parent Matrix Item"
                Range("A" & i & ":AL" & i).Interior.Color = vbYellow
                Range("A" & i - 1 & ":AL" & i - 1).Value = Range("A1:AL1").Value
                Range("A" & i - 1 & ":AL" & i - 1).Interior.Color = vbGreen
                Range("AE" & i).Value = "<p>Warranty and stuff</p>"
                Range("AF" & i).Value = "<p>Return Policy</p>"
                Range("AA" & i).Value = Range("C" & i) & "|" & Range("F" & i)
                Range("Q" & i).Value = Range("Q" & i + 1)
                Range("E" & i + 1 & ":E" & last_row).Value = Range("A" & i)
                Range("E" & i).Value = " "
                
                
            Else
            Range("D" & i).Value = "Child Matrix Item"
          
        End If
        Next i
        Range("AG2:AG" & last_row).Formula = "Supply Item"
 
            
End Sub

Private Sub CommandButton5_Click()
Cells.SpecialCells(xlCellTypeFormulas,xlErrors).Clear
End Sub

Private Sub CommandButton6_Click()
     Dim last_row As Double
     last_row = Range("F" & Rows.Count).End(xlUp).Row
     Range("H3:H" & last_row).Formula = "=VLOOKUP(AM3,'[Mck Merge Sheet.xlsx]Sheet1'!$A:$D,4,0)"
     Range("J3:J" & last_row).Formula = "=VLOOKUP(AM3,'[Mck Merge Sheet.xlsx]Sheet1'!$A:$H,0)"
     Range("K3:K" & last_row).Formula = "=VLOOKUP(AM3,'[Mck Merge Sheet.xlsx]Sheet1'!$A:$J,10,xlErrors).Clear
End Sub

我们将不胜感激和感谢您的任何建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。