返回列表 上一主題 發帖

[發問] 自動清除功能

回復 9# GBKEE

大大,
請教sorting的問題,這個程式原本是在來源檔sorting,現在我把它改到目的檔,執行貼的動作後再sorting,為何就不能執行sorting動作呢?
  1. Option Explicit
  2. Dim 目的檔 As Workbook, 來源檔 As Workbook
  3. Sub 庫存更新()
  4.     Dim xRng As Range
  5.     File_settings 來源檔, "庫存資料表.xlsx"
  6.     File_settings 目的檔, "ERP_Data.xlsx"
  7. '*********************************************************
  8.     With 來源檔.Sheets(1)
  9.         Set xRng = .UsedRange  'UsedRange->工作表所使用的範圍,如A:AA之後再也沒資料
  10.         xRng.Copy 'A:AA複製到目的檔B:AB
  11.     End With
  12.     With 目的檔.Sheets("庫存")
  13.        .Range("B1").PasteSpecial xlPasteValues '選擇性貼上值
  14.         .Range("a" & xRng.Rows.Count + 1, .Range("A1101")).Resize(, 37).Clear
  15.         .Cells.Sort Key1:=.Columns("AD"), Key2:=.Columns("G"), Header:=xlYes
  16.     End With
  17.     來源檔.Close False
  18.     目的檔.Save
  19. End Sub
  20. '**********來源檔是同VBA報表指令的資料夾\FromERP\*********
  21. Sub File_settings(xFile As Workbook, 工作頁 As String) '檔案設定
  22.     Dim xPath As String
  23.     xPath = ThisWorkbook.Path & "\"
  24.     If UCase(工作頁) <> UCase("ERP_Data.XLSX") Then xPath = xPath & "FromERP\"
  25.     On Error Resume Next
  26.     Set xFile = Workbooks(工作頁)
  27.     If Err > 0 Then Set xFile = Workbooks.Open(xPath & 工作頁)
  28.     If xFile.Name = "" Then
  29.         MsgBox "請查看 " & vbLf & xPath & vbLf & "是否有 [" & 工作頁 & "]"
  30.         End
  31.     End If
  32. End Sub
複製代碼
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

請高人指點:

情形一,單獨排序時沒問題
  1. Option Explicit
  2. Dim 目的檔 As Workbook, 來源檔 As Workbook
  3. Sub sorting()
  4.     Dim xRng As Range
  5.      File_settings 目的檔, "ERP_Data.xlsx"
  6.     With 目的檔.Sheets("庫存")
  7.         .Cells.Sort Key1:=.Columns("AD"), Key2:=.Columns("G"), Header:=xlYes
  8.     End With
  9.     目的檔.Save
  10. End Sub

  11. '**********來源檔是同VBA報表指令的資料夾\FromERP\*********
  12. Sub File_settings(xFile As Workbook, 工作頁 As String) '檔案設定
  13.     Dim xPath As String
  14.     xPath = ThisWorkbook.Path & "\"
  15.     If UCase(工作頁) <> UCase("ERP_Data.XLSX") Then xPath = xPath & "FromERP\"
  16.     On Error Resume Next
  17.     Set xFile = Workbooks(工作頁)
  18.     If Err > 0 Then Set xFile = Workbooks.Open(xPath & 工作頁)
  19.     If xFile.Name = "" Then
  20.         MsgBox "請查看 " & vbLf & xPath & vbLf & "是否有 [" & 工作頁 & "]"
  21.         End
  22.     End If
  23. End Sub
複製代碼
情形2,在以下中排序,卻一直排錯,是哪裡出問題?
  1. Option Explicit
  2. Dim 目的檔 As Workbook, 來源檔 As Workbook
  3. Sub 庫存更新()
  4.     Dim xRng As Range
  5.     File_settings 來源檔, "庫存資料表.xlsx"
  6.     File_settings 目的檔, "ERP_Data.xlsx"
  7. '*********************************************************
  8.     With 來源檔.Sheets(1)
  9.         Set xRng = .UsedRange  'UsedRange->工作表所使用的範圍,如A:AA之後再也沒資料
  10.         xRng.Copy 'A:AA複製到目的檔B:AB
  11.     End With
  12.     With 目的檔.Sheets("庫存")
  13.        .Range("B1").PasteSpecial xlPasteValues '選擇性貼上
  14.     End With
  15.     With 目的檔.Sheets("庫存")
  16.         .Cells.Sort Key1:=.Columns("AD"), Key2:=.Columns("G"), Header:=xlYes
  17.     End With
  18.     來源檔.Close False
  19.     目的檔.Save
  20. End Sub
  21. '**********來源檔是同VBA報表指令的資料夾\FromERP\*********
  22. Sub File_settings(xFile As Workbook, 工作頁 As String) '檔案設定
  23.     Dim xPath As String
  24.     xPath = ThisWorkbook.Path & "\"
  25.     If UCase(工作頁) <> UCase("ERP_Data.XLSX") Then xPath = xPath & "FromERP\"
  26.     On Error Resume Next
  27.     Set xFile = Workbooks(工作頁)
  28.     If Err > 0 Then Set xFile = Workbooks.Open(xPath & 工作頁)
  29.     If xFile.Name = "" Then
  30.         MsgBox "請查看 " & vbLf & xPath & vbLf & "是否有 [" & 工作頁 & "]"
  31.         End
  32.     End If
  33. End Sub
複製代碼

TOP

回復 9# GBKEE
找了4天,終於發現不能sorting的原因...
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題