標題:
[發問]
盤點表及標籤 VBA
[打印本頁]
作者:
PJChen
時間:
2017-8-13 23:53
標題:
盤點表及標籤 VBA
我想利用盤點表輸出儲位的標籤,因為有關新增列的部份,沒有辦法錄製巨集,有勞大家幫忙...感謝 [attach]27633[/attach]
1.. VBA程式請放在VBA報表指令.xlsm 檔案中
2.. 將ERP_Data.xlsx的庫存.sheet建立一個單獨的複本,存為Q:\00_科毅\出貨文件連結\VBA輸出報表\盤點表.xlsx
3.. 存檔時若已有盤點表的檔案存在時,不覆蓋,自動存為"盤點表_NOW" (YYYYMMDD.HHMM)
4.. 數值化 盤點表.xlsx使之不要有任何公式 (原檔案有公式,只是為了測試而預先值化了)
5.. 使系統不做任何詢問,不存檔直接關閉ERP_Data.xlsx
6.. 將盤點表.xlsx 1102:1104列的統計資料刪除
7.. AL欄篩選出大於0及非空格的資料
8.. AH欄篩選出等於1的資料
9.. 新增一個sheet並命名為Label,版面配置的上下左右邊界皆為0
10.. copy G、AC、AD、AL、AM連同表頭 (儲存格格式,欄寬都要相同)到Label.sheet,從B1開始依序貼上
以下的動作皆在Label.sheet
11.. F欄所有等於"V"的欄位,在下方增加二列空白
12.. 並將F欄等於"V"的同一列的D欄儲存格內容,完全copy到新增空白列的第一列C欄位置,並且文字左右置中
13.. A1 鍵入"Item",並在A2一直到資料最底部,key入1.2.3等差數列,並且文字左右置中
14.. 從D:F欄插入3欄空白,copy B:C 至E:F
15.. A:I加上篩選鍵,B2凍結窗格
16.. 設定列印範圍為B:F
17.. 儲存檔案,不關閉
作者:
PJChen
時間:
2017-8-20 00:00
您好,
我將程式修正為以下,
1.. VBA程式請放在VBA報表指令.xlsm 檔案中
2.. 將ERP_Data.xlsx的庫存.sheet複製到 盤點表.xlsx (先clear,再貼上值)
3.. 存檔時若已有盤點表的檔案存在時,不覆蓋,自動存為"盤點表_YYYYMMDD.HHMM
4.. 使系統不做任何詢問,不存檔直接關閉ERP_Data.xlsx
5.. copy 盤點表.sheet G、AC、AD、AH:AJ、AL、AM欄連同表頭 (儲存格格式,欄寬都要相同)到Label.sheet,從B欄開始依序貼上並加上篩選鍵
6.. A2一直到資料最底部,key入1.2.3等差數列,並且文字左右置中
7.. 複製一個Label.sheet>>Label (2)
以下的動作皆在Label (2).sheet
8.. Label (2) H欄篩選出=0的資料並刪除
9.. Label (2) E欄篩選出不等於1的資料並刪除
10.. I欄所有等於"V"的欄位,在下方增加二列(整列式)空白
11.. 並將I欄等於"V"的同一列的D欄儲存格內容,完全copy到新增空白列的第一列C欄位置,並且文字左右置中
12.. 儲存檔案,不關閉
[attach]27642[/attach] [attach]27643[/attach] [attach]27644[/attach]
有一部份的程式已經做好了,但...
1) 運作不正常,檔案無法自行開啟
2) 5~12無法用錄製巨集方式作業(因為資料不是固定模式的,常有增減),能夠幫忙寫後續程式嗎?
Sub 盤點表()
Dim Msg As Boolean, W As Workbook, Wb As Workbook 'W As "來源檔" Wb As "目的檔"
'Boolean 型態的預設值為 False
'*******Workbooks 開啟的活頁簿物件集合****
For Each W In Workbooks
If UCase(W.Name) = UCase("ERP_Data.xlsx") Then
Msg = True '檔案已開啟
Exit For
End If
Next
'*****************************************來源檔
If Msg = True Then '檔案已開啟
Set W = Workbooks("ERP_Data.xlsx")
Else '檔案尚未打開時
Set W = Workbooks.Open("Q:\00_科毅\出貨文件連結\ERP_Data.xlsx")
End If
'*******Workbooks 開啟的活頁簿物件集合****目的檔
If Msg = True Then '檔案已開啟
Set Wb = Workbooks("盤點表.xlsx")
Else '檔案尚未打開時
Set Wb = Workbooks.Open("Q:\00_科毅\出貨文件連結\盤點表.xlsx")
End If
'*****************************************複製到新的活頁薄
With W.Sheets("庫存")
Set xRng = .UsedRange 'UsedRange->工作表所使用的全部範圍
xRng.Copy '複製
End With
With Wb.Sheets("盤點表")
.Range("A1").PasteSpecial xlPasteValues '選擇性貼上
'.Range("A1").Paste '完全貼上(無效)
Application.CutCopyMode = False '***不處於剪下或複製模式
End With
W.Close False '關閉檔案(不會問是否存檔)
'*****************************************
With Wb.Sheets("盤點表")
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2 '打開隱藏群組
'Wb.Save
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)