Board logo

標題: [發問] copy資料 [打印本頁]

作者: PJChen    時間: 2020-3-1 17:40     標題: copy資料

Dear,
這個程式第一個部份:copy 期初庫存 一直無法貼上,請幫忙看下...
1)copy 期初庫存 但一直無法貼上值
來源檔  庫存表
xRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
Set Rng = Range("S5:S" & xRow)
貼到目的檔 最新庫存-佳品
Workbooks("最新庫存-佳品.xlsx").Sheets("佳品").Activate
.Range("AM6:AM" & xRow).PasteSpecial xlPasteValues

2)copy 盤點資料 執行沒問題,但已經寫了Application.ScreenUpdating = False
為什麼執行時,螢幕會一直閃?

3) 另有一個程式Sub 出貨(),是在其他程式中呼叫,但只需在每週一、四執行,請問要如何寫這段程式Call Module211.出貨
[attach]31762[/attach]
作者: jcchiang    時間: 2020-3-2 15:12

回復 1# PJChen

試試看
將Workbooks("最新庫存-佳品.xlsx").Sheets("佳品").Activate
.Range("AM6:AM" & xRow).PasteSpecial xlPasteValues
改為-->
Workbooks.Open(Path & "最新庫存-佳品.xlsx").Sheets("佳品").Activate
Range("AM6:AM" & (xRow + 1)).PasteSpecial xlPasteValues '選擇性貼上值
作者: PJChen    時間: 2020-3-2 17:22

回復 2# jcchiang
Dear jcchiang,

有設路徑的"庫存表"是來源檔
xRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
Set Rng = Range("S5:S" & xRow)
"S5:S"有合併儲存格, 一直無法貼到目的檔 最新庫存-佳品

Workbooks("最新庫存-佳品.xlsx").Sheets("佳品")因為工作時,一直都是開啟的,所以沒有設置路徑,所以不需要Open(Path & ...
改為以下還是無法貼...
Workbooks.Open(Path & "最新庫存-佳品.xlsx").Sheets("佳品").Activate
Range("AM6:AM" & (xRow + 1)).PasteSpecial xlPasteValues '選擇性貼上值

其實我在使用copy的功能,一般都只貼上值,所以我最想要的寫法是xRng = Rng.Values
不過就是不能貼上,貌似不能這麼寫,我想知道還有什麼簡潔的寫法嗎?
目前我先暫用寫死的方法,不然無法運作,但又不喜歡這個死方法,儲存格一但變動,非得要修改,不然資料就錯了!
Workbooks("最新庫存-佳品.xlsx").Sheets("佳品").Range("AM6:AM20") = Rng.Value

With Workbooks.Open(Path & File)
           Set W = Workbooks.Open(Path & File)
               With W.Sheets(i)
                   W.Sheets(i).Activate
xRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
Set Rng = Range("S5:S" & xRow)
              End With
Workbooks("最新庫存-佳品.xlsx").Sheets("佳品").Activate
Set xRng = Range("AM6:AM" & xRow)
xRng = Rng.Values
作者: jcchiang    時間: 2020-3-3 08:03

回復 3# PJChen

1.因為不曉得Workbooks("最新庫存-佳品.xlsx").Sheets("佳品")是已經開啟,所以才會在程式中增加開啟
2.範例檔中Range("S5:S" & xRow)中xRow是19,但Workbooks("最新庫存-佳品.xlsx").Sheets("佳品")中Range("AM6:AM" & xRow)是AM6:AM19所以貼不上
所以Range("AM6:AM" & (xRow + 1)).才多加一去滿足資料欄位
因為Range("S5:S19")跟Range("AM6:AM19")差一列
作者: PJChen    時間: 2020-3-3 21:32

回復 4# jcchiang

感謝您詳細的解說,經過反覆練習,沒問題了,非常謝謝...
作者: PJChen    時間: 2020-3-20 22:40

請問  程式Sub 出貨(),是在其他程式中呼叫,但只需在每週一、四執行,不是這個時間,則不用呼叫Module211.出貨,我試著寫成以下,但一直無法執行!
        If Weekday(Day, 2) Or Weekday(Day, 5) Then
                Call Module211.出貨
            Else
            Exit For ' 中斷
        End If
作者: 准提部林    時間: 2020-3-22 10:07

回復 6# PJChen

周一&周四
If Weekday(Day, 2)= 1 Or Weekday(Day, 2) = 4 Then
作者: PJChen    時間: 2020-3-26 23:01

回復 7# 准提部林

准大好,
今天是週四,正好可以測試程式,結果我單獨執行 Module211.出貨 時沒問題,但以下程式,是否哪個語法還有錯誤?還是不能執行吔...
        If Weekday(Day, 2) = 1 Or Weekday(Day, 2) = 4 Then
                Call Module211.出貨
            Else
            Exit For
        End If
作者: jcchiang    時間: 2020-3-27 08:26

回復 8# PJChen

If Weekday(Date, 2) = 1 Or Weekday(Date, 2) = 4 Then
                 Call Module211.出貨
            Else
             Exit For
         End If




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)