返回列表 上一主題 發帖

[發問] 自動清除功能

本帖最後由 GBKEE 於 2017-7-29 19:19 編輯

回復 1# PJChen

UCase的功能是什麼?
你學習的不夠認真,不懂要看看說明

試試看
  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.     With 來源檔.Sheets(1)
  8.         .Cells.Sort Key1:=.Columns("L"), Key2:=.Columns("F"), Header:=xlYes
  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.         '自動清除目的檔1065:1073列
  15.         .Range("a" & xRng.Rows.Count + 1, .Range("A1101")).Resize(, 27).Clear
  16.     End With
  17.     來源檔.Close False
  18.     目的檔.Save
  19. End Sub
  20. Sub File_settings(xFile As Workbook, 工作頁 As String) '檔案設定
  21.     Dim xPath As String
  22.     xPath = ThisWorkbook.Path & "\"
  23.     If UCase(工作頁) <> UCase("ERP_Data.XLSX") Then xPath = xPath & "FromERP\"
  24.     On Error Resume Next
  25.     Set xFile = Workbooks(工作頁)
  26.     If Err > 0 Then Set xFile = Workbooks.Open(xPath & 工作頁)
  27.     If xFile.Name = "" Then
  28.         MsgBox "請查看 " & vbLf & xPath & vbLf & "是否有 [" & 工作頁 & "]"
  29.         End
  30.     End If
  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# PJChen

1) 來源檔與目的檔同時事先開啟,或同時不要開啟,它都無法執行??
2) 先開啟目的檔,再執行巨集這時它會自行打開來源檔,這樣就可以完全執行也會先排序再貼上.    ??

Sub 庫存更新(), 這程序你不是要放在VBA報表指令.XLSM
程式碼 有指定  來源檔與目的檔, 可以不管事先開啟,或沒開啟的問題
  1. File_settings 來源檔, "庫存資料表.xlsx"
  2.     File_settings 目的檔, "ERP_Data.xlsx"
  3. '**********來源檔是同VBA報表指令的資料夾\FromERP\*********
  4. If UCase(工作頁) <> UCase("ERP_Data.XLSX") Then xPath = xPath & "FromERP\"
複製代碼
2#程式碼已更新 再試試看
你4#的程式碼執沒錯ㄚ
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# PJChen
抱歉了,2個地方少加 " ."
再試試看

With 來源檔.Sheets(1)
        .Cells.Sort Key1:= .Columns("L"), Key2:= .Columns("F"), Header:=xlYes
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# PJChen
With 來源檔.Sheets(1)    '這物件是工作表
        .Cells.Sort Key1:=Columns("L"), Key2:=.Columns("F"), Header:=xlYes
        '** 沒有一點的   Columns("L"), 是指作用中工作表的Columns("L")
         '** 如恰巧作用中工作表是,來源檔.Sheets(1),,不會有錯誤發生的
       '**這是小地方很容易疏忽的
        Set xRng = .UsedRange    'UsedRange->工作表所使用的範圍,如A:AA之後再也沒資料
        xRng.Copy 'A:AA複製到目的檔B:AB
    End With
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題