返回列表 上一主題 發帖

[發問] 如何取得sheet1指定內容複製到sheet2

[發問] 如何取得sheet1指定內容複製到sheet2

Sheet1是每天會更新資料.
我想取sheet1 A:A的指定內容,複製到Sheet2的表格.
因為是每天都取Sheet1A:A的指定內部,想利用VAB幫忙完成.
設定複製到sheet2可以按日期帖上.2017/4/1-2017/4/30

123.zip (7.4 KB)

Sub nn()
  Dim lSRow&, lTRow&
  Dim rTar As Range
  Dim wsTar As Worksheet
  
  Set wsTar = Sheets("Sheet2")
  
  With Sheets("Sheet1")
    wsTar.Cells.Clear
    .[A1:D2].Copy wsTar.[A1]
    lTRow = 7
    lSRow = 3
    Set rTar = .Cells(lTRow, 1)
    While rTar + rTar.Offset(, 1) + rTar.Offset(, 2) + rTar.Offset(, 3) <> 0
      rTar.Resize(, 4).Copy wsTar.Cells(lSRow, 1)
      lSRow = lSRow + 1
      lTRow = lTRow + 5
      Set rTar = .Cells(lTRow, 1)
    Wend
  End With
End Sub

我有爬文,引用了這個VBA,但是我每天都會在Sheet1更新
我把這句wsTar.Cells.Clear刪除了,怎樣可以每天跳一行,今天A1帖上,明天B1帖上,如此類推。
因為是整個月都要重複取A:A的資料,帖上Sheet2,一列代表一天。

TOP

EndRow = ActiveSheet.UsedRange.Rows.Count + 1 '所有使用中的列數+1
我爬文找到這一句。請問各位大大,這一句對不對?還有放在那一段?

TOP

回復 3# coke373

參考參考
  1. Sub ex()

  2. k = Sheets(2).Cells(9, Columns.Count).End(xlToLeft).Column
  3. For i = 1 To 40
  4.    Sheets(2).Cells(i + 1, k + 1) = Sheets(1).Cells(i, 1)
  5. Next
  6.    Sheets(2).Cells(1, k + 1) = Format(Year(Date), "0000") & Format(Month(Date), "00") & Format(Day(Date), "00")

  7. End Sub
複製代碼

TOP

回復 4# joey0415


大大 謝謝你幫忙
請問可不可以在I=1-40 改成指定的,例如:copyC13:C98,再加上C107:C120,再上加上C138:C140。
請問怎樣改。

TOP

回復 4# joey0415


    Sub ex()

k = Sheets(2).Cells(9, Columns.Count).End(xlToLeft).Column
For i = 1 To 40
   Sheets(2).Cells(i + 1, k + 1) = Sheets(1).Cells(i, 1)
Next
   Sheets(2).Cells(1, k + 1) = Format(Year(Date), "0000") & Format(Month(Date), "00") & Format(Day(Date), "00")

End Sub

大大這個方法是可行,但是For i = 1 To 40 這一行可否改成其他,因為sheet1是一份report,是一個程式讀取出來的,他讀取來有很多隱藏格,但是我要內容剛好在C11:C96,C107:C120,C137:C139。我嘗試把For i = 1 To 40 改成 For i = C11 to C139,原來是不行,出error。請師兄幫忙。

TOP

回復 6# coke373

Book1.zip (9.14 KB)
  1. Sub ex()

  2.     k = Sheets(2).Cells(9, Columns.Count).End(xlToLeft).Column
  3.    
  4.     For i = 11 To 96
  5.        Sheets(2).Cells(i - 9, k + 1) = Sheets(1).Cells(i, 3)
  6.     Next
  7.    
  8.     For i = 107 To 120
  9.        Sheets(2).Cells(i - 19, k + 1) = Sheets(1).Cells(i, 3)
  10.     Next
  11.    
  12.     For i = 137 To 139
  13.        Sheets(2).Cells(i - 35, k + 1) = Sheets(1).Cells(i, 3)
  14.     Next
  15.    
  16.     Sheets(2).Cells(1, k + 1) = Format(Year(Date), "0000") & Format(Month(Date), "00") & Format(Day(Date), "00")

  17. End Sub
複製代碼

TOP

回復 7# joey0415


    大大感謝你的幫忙!今晚回到公司再套用.

TOP

回復 7# joey0415
大大謝謝你幫忙
我有幾個問題想問

Sheets(2).Cells(i - 9, k + 1) = Sheets(1).Cells(i, 3)
Sheets(2).Cells(i - 19, k + 1) = Sheets(1).Cells(i, 3)
Sheets(2).Cells(i - 35, k + 1) = Sheets(1).Cells(i, 3)  
i-9
i-19
i-35 是代表什麼?
For i = 11 To 96 如果我改成For i = 11 To 100 預多行數。要不要修改i-9?
因為我嘗試修改For i = 11 To 100 ,然後下面的For i = 107 To 120 帖出來會減少了。

TOP

回復 9# coke373

i- ?
代表你的表格往上移動多少,自行微調
若只有i  那代表複製的位置與原來的位置相同

請自行研究看看

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題