Board logo

標題: [發問] 如何由最後一列數起去複製指定數量 [打印本頁]

作者: luke    時間: 2013-5-7 22:41     標題: 如何由最後一列數起去複製指定數量

各位大大

1.sheet1表的F:G欄為資料區約100資料列(數量不定),    K:L欄為資料輸出區
2.[B2]儲存格為拷貝數量, 當[B2]=常數時, 是否能從   F:G欄最後一列由下往上數取這個區塊的儲存格資
  料並Copy至K:L欄.

例如:[B2]=3, F:G欄有11個資料列(F1:G11). 當按下按鈕是否可以由下往上共複製3個區塊資料即F9:G11至K1儲存格如附檔說明.
同理: 若[B2]=5就複製F7:G11共5筆資料列至K1儲存格   餘此類推....
 
VBA如何寫出來?
[attach]14915[/attach]
作者: stillfish00    時間: 2013-5-8 03:42

本帖最後由 stillfish00 於 2013-5-8 03:44 編輯

回復 1# luke
  1. Sub TEST()
  2. Dim r As Long
  3. With Sheets("sheet1")
  4.   .[K:L].ClearContents
  5.   r = Application.Max(.Cells(.Rows.Count, "F").End(xlUp).Row, .Cells(.Rows.Count, "G").End(xlUp).Row)
  6.   .[K1].Resize(.[B2], 2) = .Cells(r - .[B2] + 1, "F").Resize(.[B2], 2).Value
  7. End With
  8. End Sub
複製代碼

作者: luke    時間: 2013-5-8 06:11

回復 2# stillfish00

    執行OK
    謝謝stillfish00
   
以上
作者: GBKEE    時間: 2013-5-8 08:11

回復 2# stillfish00
樓主有說: 當[B2]=常數時 要有除錯
  1. Option Explicit
  2. Sub Ex()
  3.     With Sheets("Sheet1")
  4.         If .[B2] > 0 And .[B2] <= Application.CountA(.[F:F]) Then
  5.             .[K:L] = ""
  6.              .[K1].Resize(.[B2], 2) = .Range("F" & .Rows.Count).End(xlUp).Offset(1 - .[B2]).Resize(.[B2], 2).Value
  7.             
  8.              '.Range("F" & .Rows.Count).End(xlUp).Offset(1 - .[B2]).Resize(.[B2], 2).Copy .[K1]     '複製
  9.             
  10.         Else
  11.             MsgBox "B2 有誤"
  12.         End If
  13.     End With
  14. End Sub
複製代碼

作者: stillfish00    時間: 2013-5-8 09:04

回復 4# GBKEE
是的,感謝修正。




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