返回列表 上一主題 發帖

[發問] 請問要如何簡化/更改VBA, 完成往後的Order呢?

  1. Sub TEST()
  2. Dim R%, C&, xDate$, Arr, Brr, Crr, i&, j&, N&
  3. Dim xB As Workbook, xS As Worksheet, SS%
  4. R = Cells(Rows.Count, "D").End(xlUp).Row - 9 '資料列數(含標題列)
  5. C = Cells(10, Columns.Count).End(xlToLeft).Column - 15 '(Order欄數)
  6. If R <= 0 Or C <= 0 Then Exit Sub
  7. xDate = [G1] '日期
  8. Arr = [D10].Resize(R) '產品CODE
  9. Brr = [P10].Resize(R, C) 'Order資料區
  10. Set xB = Workbooks.Add '開新檔案
  11. For i = C To 1 Step -1
  12.     If Brr(1, i) = "" Then GoTo 101
  13.     Set xS = xB.Sheets.Add: xS.Name = Brr(1, i) '新增工作表
  14.     xS.[C:C].ColumnWidth = 11 '日期欄寬
  15.     N = 0: SS = SS + 1 '新增工作表累計張數
  16.     For j = 2 To R
  17.         If Brr(j, i) <> "" Then
  18.            N = N + 1
  19.            xS.Cells(N, 1).Resize(1, 9) = Array("DK", "", "'" & xDate, "DN", "B99", Brr(1, i), Arr(j, 1), "", Brr(j, i))
  20.         End If
  21.     Next
  22. 101: Next i

  23. Application.DisplayAlerts = False
  24. If SS > 0 Then
  25.    For i = xB.Sheets.Count To SS + 1 Step -1
  26.        xB.Sheets(i).Delete '刪除新檔案預設空白工作表
  27.    Next
  28. End If
  29. xB.SaveAs Filename:=ThisWorkbook.Path & "\明細表_" & xDate & ".xls", CreateBackup:=False '另存新檔
  30. End Sub
複製代碼
Xl0000061.rar (16.85 KB)

TOP

回復 9# boomf2

Xl0000061B_V1.rar (123.47 KB)

最近忙, 若有其它補充或修改, 請其他大大幫忙!

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題