Board logo

標題: VBA問題 請問如何利用VBA讓資料每次執行後自動貼上到最後一格 [打印本頁]

作者: jimmy121212    時間: 2013-11-4 13:06     標題: VBA問題 請問如何利用VBA讓資料每次執行後自動貼上到最後一格

各位大大好
請問若想要把附件的SHEET3裡面的B31:H31
                                                               與B33:H33
當執行巨集時會自動貼到SHEET1的B2:G2   
                                             與SHEET2的B:G2
並且每次執行都繪貼到下一格呢??
若能解答不勝感激
作者: owen06    時間: 2013-11-4 13:57

回復 1# jimmy121212


  試試
作者: jimmy121212    時間: 2013-11-4 20:26

謝謝owen06 大大 我了解了 謝謝
作者: jimmy121212    時間: 2013-11-4 20:55

回復 2# owen06


    不好意思 請問I=2跟X=2的用意是
   初學者請大大指導 謝謝
作者: jimmy121212    時間: 2013-11-4 23:08

回復 4# jimmy121212
想再請問大大 如附件 與先前一樣還要再加上A36:M36貼到SHEET4要怎麼寫呢 試了好幾次都失敗 懇請大大幫忙 謝謝
作者: owen06    時間: 2013-11-5 08:17

回復 5# jimmy121212


    不好意思,昨天那樣寫的太笨了,換成這樣會比較方便。
    另外你問程式裡的I跟X是什麼意思,其實沒什麼特別意思,個人習慣而已,
    要設什麼都隨個人喜好,不要衝突到就好。
    簡單的說,FOR …... NEXT,是一迴圈的方式,   
    FOR X = 1 TO 10
    CELLS(X ,3)=10
    NEXT
    你用F8下去逐步執行,就會發現(1,3), (2,3)一直到(10,3)的儲存格都逐個變成10,
    這就是迴圈,但是因為你有限定到10,所以他不會在(11,3)執行指令。
    而我設的  For X = 2 To Application.CountA(Sheet2.[A:A]) + 1
    他就可以用公式去計算出範圍,讓X的最大值成為一個變數,
    你可以在即時運算視窗輸入『?Application.CountA(Sheet1.[A:A]) + 1』
    去看看每次有新增資料時,他算出來的答案是不是有所不同。
    不過早上想想這個方法挺呆的,你用附檔的這個語法簡單明暸多了。
    以上都是本版上面的大大教的,來這真的會獲益良多哦~
作者: jimmy121212    時間: 2013-11-5 09:31

原來是這樣啊 再次感謝owen06 大大  這裡高手多且熱心 難怪受益良多
作者: jimmy121212    時間: 2013-11-9 21:48

回復 6# owen06


   想再請教 如果要將資料貼到另一個WORKBOOK要怎樣寫呢??不好意思 我沒有基礎 試了好久都不行  希望您可以教教我
感恩
作者: GBKEE    時間: 2013-11-10 10:21

回復 8# jimmy121212
  1. Private Sub CommandButton1_Click()
  2.     Dim Sh(1 To 4) As Worksheet
  3.     Set Sh(1) = Workbooks("a.xls").Sheets("Sheet1")   '另一個WORKBOOK
  4.     Set Sh(2) = Workbooks("a.xls").Sheets("Sheet2")   '另一個WORKBOOK
  5.     Set Sh(3) = Workbooks("a.xls").Sheets("Sheet4")   '另一個WORKBOOK
  6.    
  7.     Set Sh(4) = Workbooks("bbb.xls").Sheets("Sheet3") '資料檔WORKBOOK
  8.    
  9.     Sh(1).[a65536].End(xlUp).Offset(1, 0).Resize(, Sh(4).[B31:H31].Columns.Count) = Sh(4).[B31:H31].Value
  10.     Sh(2).[a65536].End(xlUp).Offset(1, 0).Resize(, Sh(4).[B33:H33].Columns.Count) = Sh(4).[B33:H33].Value
  11.     Sh(3).[a65536].End(xlUp).Offset(1, 0).Resize(, Sh(4).[a36:m36].Columns.Count) = Sh(4).[a36:m36].Value

  12. End Sub
複製代碼

作者: jimmy121212    時間: 2013-11-11 17:00

本帖最後由 jimmy121212 於 2013-11-11 17:03 編輯

[attach]16665[/attach]回復 9# GBKEE


   GBKEE大大 小弟試過多次 還是錯誤  小弟厚顏的想請問:dizzy:  不知您可否幫我寫上 我再慢慢對照學習
我要將"外資及其自營"檔案中*每日概算表*�堛�(B37:E37)與(B38:E38)自動複製到檔案*歷史未平倉的(E:H)與(R:U)

  感謝
作者: GBKEE    時間: 2013-11-11 17:30

本帖最後由 GBKEE 於 2013-11-11 17:37 編輯

回復 10# jimmy121212
  1. Sub 按鈕3_Click()
  2.     Dim Sh(1 To 4) As Worksheet
  3.     'Sheets("活頁簿工作表名稱的 字串")   ->Sheets("OP-外資+")
  4.     Set Sh(1) = Workbooks("c曆史未平倉.xlsx").Sheets("OP-外資+") '另一個WORKBOOK
  5.     'Sheets( 索引值  [數字   第幾個工作表])   如Sheets(1)  ->"OP-外資+"
  6.     'Set Sh(1) = Workbooks("c曆史未平倉.xlsx").Sheets(1) '另一個WORKBOOK
  7.     Set Sh(4) = Workbooks("bbb.xls").Sheets("Sheet3") '資料檔WORKBOOK
  8.     Sh(1).[a65536].End(xlUp).Offset(1, 0).Resize(, Sh(4).[B31:H31].Columns.Count) = Sh(4).[B31:H31].Value
  9. End Sub
複製代碼

作者: jimmy121212    時間: 2013-11-12 23:26

回復 11# GBKEE


謝謝GBKEE大大   
但第二行偵錯範圍超出引索,實在抓不到頭緒
可以請求您直接寫出一個可執行的給我參考比對嗎?拜託了
另外我是要我要將"外資及其自營"檔案中*每日概算表*�堛�(B37:E37)與(B38:E38)自動複製到檔案*歷史未平倉的(E:H)與(R:U)
作者: GBKEE    時間: 2013-11-13 06:58

回復 12# jimmy121212
第二行偵錯範圍超出引索 : 就是找不到指定的WorkBooks或是Sheets名稱
檢查一下WorkBooks("名稱")有開啟嗎?? ,Sheets("名稱")是這WorkBooks("名稱")的工作表嗎??
作者: jimmy121212    時間: 2013-11-13 09:18

回復 13# GBKEE


   抱歉 是第三行  03 .Sheets("活頁簿工作表名稱的 字串")   ->Sheets("OP-外資+")
作者: GBKEE    時間: 2013-11-13 09:27

本帖最後由 GBKEE 於 2013-11-13 09:30 編輯

回復 14# jimmy121212
請看第3行  有這 ' 符號VBA不會執行的,第5,6也有這註解(程式中的說明)文字的符號

  'Sheets("活頁簿工作表名稱的 字串")   ->Sheets("OP-外資+")
作者: jimmy121212    時間: 2013-11-13 10:15

回復 15# GBKEE


   喔對  是04.    Set Sh(1) = Workbooks("c曆史未平倉.xlsx").Sheets("OP-外資+") '另一個WORKBOOK
超出引索
作者: GBKEE    時間: 2013-11-13 10:34

回復 16# jimmy121212
   
可以請求您直接寫出一個可執行的給我參考比對嗎?拜託了
不知所以然,給你檔案是多餘的,多看看(VBA的說明)會進步的.
作者: jimmy121212    時間: 2013-11-13 10:43

回復 17# GBKEE


   謝謝
作者: owen06    時間: 2013-11-13 10:51

回復 12# jimmy121212

內容改成這樣子可以嗎?
  1. Dim Sh(1 To 4) As Worksheet
  2.     Set Sh(1) = Workbooks("c曆史未平倉.xlsx").Sheets("總未平覽表") '
  3.     Set Sh(4) = Workbooks("a外資及自營-1.xlsm").Sheets("每日概算表")
  4.     Sh(1).[e65536].End(xlUp).Offset(1, 0).Resize(1, 4).Value = Sh(4).[b37:e37].Value
  5.     Sh(1).[r65536].End(xlUp).Offset(1, 0).Resize(1, 4).Value = Sh(4).[b38:e38].Value
複製代碼

作者: jimmy121212    時間: 2013-11-13 11:00

回復 19# owen06

OWEN大大
  感謝您  這樣我知道我哪裡打錯了




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