|
发表于 2022-4-20 09:01
|
显示全部楼层
本楼为最佳答案
我稍帮您优化了一下代码,不知是否符合您的要求。
- Sub 玥玥开票保存()
- Dim SSD As Worksheet, SSLS As Worksheet, n&, i%, j%
- Set SSD = Worksheets("销售单")
- Set SSLS = Worksheets("销售流水")
- If Date > #5/25/2022# Then Exit Sub
- If Not SSLS.Columns(2).Find(SSD.[H2].Value, , , xlWhole) Is Nothing Then
- MsgBox "已经保存、打印过了!", vbInformation
- Exit Sub
- End If
- If SSD.[C4] = "" Or SSD.[b6] = "" Then
- MsgBox "您要保存的出库单没有内容,请填写!", vbInformation
- Exit Sub
- End If
- If SSD.[d6] = "" And SSD.[e6] = "" Then
- MsgBox "h9没有填写购买数量", vbInformation
- Exit Sub
- End If
- If SSD.[G8] = "" Then
- MsgBox "没填写司机姓名,请填写!", vbInformation
- Exit Sub
- End If
- n = SSLS.Cells(Rows.Count, 2).End(xlUp).Row
- For i = 1 To 2
- If SSD.Cells(5 + i, "B") <> "" Then
- SSLS.Cells(n + i, 1) = Date
- SSLS.Cells(n + i, 2) = SSD.[H2]
- SSLS.Cells(n + i, 3) = SSD.[C4]
- For j = 4 To 8
- SSLS.Cells(n + i, j) = SSD.Cells(5 + i, j - 2)
- Next j
- SSLS.Cells(n + i, 9) = SSD.[E9]
- SSLS.Cells(n + i, 10) = SSD.[G8]
- SSLS.Cells(n + i, 11) = SSD.[G9]
- End If
- Next i
- MsgBox "保存成功,下面放好打印纸,准备开始打印!"
- '我猜您意思是不想打印某些内容
- SSD.[B5:J7].Borders.LineStyle = xlNone '打印前取消表格边框
- SSD.Range("B2:E2,B4,F4,H4,J4,B5:J5,D8,F8,B10,C10").Select
- Selection.Font.Color = vbWhite '打印前令部分文字变白(不打印)
- SSD.[B2:J10].PrintOut ActivePrinter:="Hewlett-Packard HP LaserJet Professional M1213nf MFP="
- Selection.Font.Color = vbBlack
- SSD.[B5:J7].Borders.LineStyle = xlContinuous
- MsgBox "打印成功!"
- [A1].Select
- End Sub
复制代码
|
|