返回列表 上一主題 發帖

[發問] 如何由最後一列數起去複製指定數量

[發問] 如何由最後一列數起去複製指定數量

各位大大

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如何寫出來?
copy.rar (15.36 KB)

本帖最後由 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
複製代碼

TOP

回復 2# stillfish00

    執行OK
    謝謝stillfish00
   
以上

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題