您好!其實我看不懂你的連結檔案跟你的描述
(工作表的編號跟A檔案、B檔案不同,對不起來)
但是針對你要找到下一欄或下一列的問題
以下有兩個解法
假設目前工作表名稱:"A" (資料來源)
目標工作表名稱:"B" (要貼過去的目標)
一、 使用Excel VBA的函數
流程如下:(複製到你的VBA空白處,自己按F8鈕慢慢看)
==================================================
Sub ABCD()
'1. 取得來源
Sheets("A").Select '切換到工作表 A
Range("B2:B3").Select '選取範圍
Selection.Copy '將此範圍內容複製
'2. 到目標來源
Sheets("B").Select '切換到工作表B
'重點來了!如何判斷最下一欄(列)呢? (其中New_Colum為變數,名字隨便設)
New_Colum = ActiveSheet.UsedRange.Columns.Count + 1
'英文翻譯就是令變數New_Column為目前工作表使用範圍的使用欄數的數量再多加一個!很簡單吧
'那列呢?就是如下:
'New_Row = ActiveSheet.UsedRange.Rows.Count + 1 '如果要用把這行最前面的『'』刪除
'英文翻譯同理!列的英文 Row、欄的英文 Column
'上面兩個看你是要貼欄(最右邊)還是列(最下面),以下以欄為例
Cells(1, New_Colum).Select
'說明:Excel VBA中對於儲存格位置的描述有N種方法,例如B2等,但是我習慣用X-Y軸表示,也就是Cell (即儲存格)
'如何以Cell定位儲存格,以B2為例,就是 Cells(2,2),第一個2是列,就是B2的2,第二個2是欄,也就是B2的B (若為C則為3,以下類推)
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
' 貼上!以資料來看需要轉置方向,這部分你可以用錄的看你還要不要格式等
'隱藏原本右邊數來第三欄的資料,該欄就是
Hide_Column = ActiveSheet.UsedRange.Columns.Count - 2 '同樣,變數名稱隨便命
Columns(Hide_Column).Select '選取該欄
Selection.EntireColumn.Hidden = True '讓整欄隱藏
End Sub '結束
==================================================
缺點:
工作表B,平時最右邊(或最下面)不能有東西,以你範例工作表2-1為例,FA欄右邊不能有你FB欄的文字,也就是要確保最右邊目前是FA欄,否則
ActiveSheet.UsedRange.Columns.Count
就會傳回FB欄,而不是FA欄,如此就會貼錯位置,如何確認?
『Ctrl按著+End』就會跑到
Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)的位置,把中間沒有必要的資料刪除(要用刪除欄、刪除列、不能用刪除內容)
那另一個方法?(太長了..貼到下一篇)
- Aug 26 Mon 2013 23:35
Excel VBA 求助
close
全站熱搜
留言列表