標題:
[發問]
某區間 隔一列貼上
[打印本頁]
作者:
PJChen
時間:
2019-12-17 16:21
標題:
某區間 隔一列貼上
Dear,
我想將Workbooks("A庫存表.xlsx").Sheets("盤點")
T6:Y6
T8:Y8
┋
T26:Y26 的資料copy後,貼到
Workbooks("最新庫存.xlsx").Sheets("check")
從AV34、AV36...一直到貼完T26:Y26的"值",也就是隔一列貼上
請問VBA語法該怎麼寫?
作者:
89305039
時間:
2019-12-18 11:19
最簡單是先計算好 區間範圍 然後程式就很簡單寫,
Workbooks("最新庫存.xlsx").Activate
Activesheet.Range("33:33,35:35,....(依此類推寫完)").Select
Selection.Insert Shift:=xlDown
set wb = Workbooks("A庫存表.xlsx").Sheets("盤點")
For i = 6 To 26 Step 2
wb.Range(i & ":" & i).Copy Activesheet.Range(28 + i & ":" & 28 + i)
Next
作者:
PJChen
時間:
2019-12-18 19:36
本帖最後由 PJChen 於 2019-12-18 19:46 編輯
回復
2#
89305039
您好,
目的檔,要貼上的資料,是一個區域不是整列
Workbooks("最新庫存.xlsx").Sheets("check")
從AV34、AV36...
所以不能用這個寫法,而且要貼上的地方是雙數,為什麼這個是單數?
Activesheet.Range("33:33,35:35,....(依此類推寫完)").Select
而且我的2個表格都不要有任何變動,這樣表格會破壞,所以不能有
Selection.Insert Shift:=xlDown
可以再幫忙用別的寫法嗎? 謝謝
作者:
ikboy
時間:
2019-12-19 10:16
Sub zz()
Dim ss As Worksheet
Application.ScreenUpdating = 0
Set ss = Workbooks("最新庫存.xlsx").Sheets("check")
With Workbooks("A庫存表.xlsx").Sheets("盤點")
For i = 6 To 26 Step 2
.Range("T" & i).Resize(1, 6).Copy ss.Range("AV" & 28 + i).Resize(1, 6)
Next
End With
Application.ScreenUpdating = 1
End Sub
複製代碼
作者:
PJChen
時間:
2019-12-20 21:13
回復
4#
ikboy
感謝...這個程式OK
請問,如要只要貼上值,不要格式,這句該怎麼改?
.Range("T" & i).Resize(1, 6).Copy ss.Range("AV" & 28 + i).Resize(1, 6)
作者:
PJChen
時間:
2019-12-22 20:46
回復
4#
ikboy
只貼值的問題解決了,不過請問
雖然程式中加了,這二句,但畫面還是會一直閃動
Application.ScreenUpdating = 0
Application.Calculation = xlManual '手動計算
但如果在程式中直接按F5,不但執行更快,而且不會閃,是為什麼?
我是在程式中做了一個觸發按鍵去執行程式
有沒有什麼方式可以讓它像按F5的效果一樣?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)