返回列表 上一主題 發帖

[發問] 儲存格往下貼上

[發問] 儲存格往下貼上

小弟想請問一下

小弟在A1 至 B5 打好了資料
            A          B
1       小名     小華
2       小美     小琳
3       小陳     小張
4       小雪     小如
5       小安     小玉

小弟想要複製A1 至B5的資料
然後往下貼上(次數不限)
變成這樣(假設兩次)
              A          B
6         小名     小華
7         小美     小琳
8         小陳     小張
9         小雪     小如
10       小安     小玉
11       小名     小華
12       小美     小琳
13       小陳     小張
14       小雪     小如
15       小安     小玉

想請問一下
Sheet1.Range("A1:B5").Select
Application.Selection.Copy
用Range().Select  的方式
如何往下貼上呢?

或是有別種方式可以完成??
問題請教一下大家
謝謝!!!
WOW

謝謝各位大大的回覆喔!!!!!感恩感恩!!
WOW

TOP

哦呵!原來如此,真感謝大大詳盡的說明。
蠻像魔術方塊呢!

TOP

本帖最後由 GBKEE 於 2012-4-5 20:08 編輯

回復 6# c_c_lai
VBA 視窗中 程式碼的範圍內 滑鼠點選後, 按F8 逐步 執行程式看看.
  1. Option Explicit
  2. Sub Ex_END()
  3.     MsgBox Range("C5").End(1).Address
  4.     MsgBox Range("C5").End(xlToLeft).Address
  5.    
  6.     MsgBox Range("C5").End(2).Address
  7.     MsgBox Range("C5").End(xlToRight).Address
  8.    
  9.     MsgBox Range("C5").End(3).Address
  10.     MsgBox Range("C5").End(xlUp).Address
  11.    
  12.     MsgBox Range("C5").End(4).Address
  13.     MsgBox Range("C5").End(xlDown).Address
  14. End Sub

  15. Sub Ex()
  16.     MsgBox Range("C5")(1).Address
  17.     MsgBox Range("C5").Cells(1).Address
  18.     MsgBox Range("C5").Cells(1, 1).Address
  19.     MsgBox Range("C5").Cells(1, "A").Address
  20.    
  21.     MsgBox Range("C5")(2).Address
  22.     MsgBox Range("C5").Cells(2).Address
  23.     MsgBox Range("C5").Cells(2, 1).Address
  24.     MsgBox Range("C5").Cells(2, "A").Address
  25.    
  26.     MsgBox Range("C5")(1, 3).Address
  27.     MsgBox Range("C5")(1, "C").Address
  28.     MsgBox Range("C5").Cells(1, 3).Address
  29.     MsgBox Range("C5").Cells(1, "C").Address
  30. End Sub
複製代碼

TOP

回復 6# c_c_lai

         [a65536].End(3)(2)
等同於[a65536].End(xlup).offset(1,0)

須分2部份解釋
1.[a65536].End(3)=[a65536].End(xlup)
   由a65536往上(xlup)找到第1個不為空值的儲存格,即a5
2.Range("a1:b3")(1)=Range("a1")
   Range("a1:b3")(2)=Range("b1")
   Range("a1:b3")(3)=Range("a2")
   Range("a1:b3")(4)=Range("b2")
   故Range("a5")(2)=Range("a5").offset(1,0)=Range("a6")

TOP

請位在 ActiveSheet.[a1:b5].Copy [a65536].End(3)(2) 語法內,
End後面之 (3)(2) 代表何意?   謝謝!

TOP

回復 4# g93353

ActiveSheet.[a1:b5].Copy [a65536].End(3)(2)

TOP

oobird  不好意思 想請問一下 如果在一次貼上的話  會把之前複製過的 全部複製起來
如果說複製一次會複製1到5   再複製一次會複製1到10  
請問要如何只複製1到5就好了呢??
WOW

TOP

沒想到一行就解決了!!!! 感謝大大的回覆!!!
WOW

TOP

ActiveSheet.UsedRange.Copy [a65536].End(3)(2)

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題