標題:
[發問]
累積報表 修正語法
[打印本頁]
作者:
Changbanana
時間:
2017-1-18 11:42
標題:
累積報表 修正語法
請教各位先進~
目前有兩個SHEET
想要把每日的資料複製至 日累積報表
[每日資料]
[attach]26412[/attach]
[日累積]
[attach]26413[/attach]
由於目前是把每日資料逐行帶入日累積報表中
想請問要如何修正語法才能自動讀[每日資料]有幾行
複製到[日累積]有資料的下一行
小妹目前語法
Sub TEST()
Dim a, b, c, today
Dim i As String
i = Sheets("日累積").Range("A65536").End(xlUp).Row '計算有資料最後一列之列數
j = Sheets("日檢核").Range("A65536").End(xlUp).Row
'比對日期
If Worksheets("日累積").Cells(i, 1).Value = Sheets("日檢核").Range("J2") Then MsgBox "早已存過資料!"
If Worksheets("日累積").Cells(i, 1).Value <> Sheets("日檢核").Range("J2") Then
For a = 1 To j - 1
'日期匯出
Sheets("日累積").Cells(i + a, 1).Value = Sheets("日檢核").Range("J2")
'這裡是想要修正的地方 因日檢核資料有時多有時少 不能寫死
Sheets("日累積").Range(Cells(i + 1, 2), Cells(i + 1, 8)) = Sheets("日檢核").Range("A2:G2").Value
Sheets("日累積").Range(Cells(i + 2, 2), Cells(i + 2, 8)) = Sheets("日檢核").Range("A3:G3").Value
Sheets("日累積").Range(Cells(i + 3, 2), Cells(i + 3, 8)) = Sheets("日檢核").Range("A4:G4").Value
Sheets("日累積").Range(Cells(i + 4, 2), Cells(i + 4, 8)) = Sheets("日檢核").Range("A5:G5").Value
Next a
MsgBox "資料匯出完成!" ' 匯出完成訊息
End If
End Sub
複製代碼
麻煩了~
[attach]26414[/attach]
作者:
justintoolbox
時間:
2017-1-24 20:15
請教各位先進~
目前有兩個SHEET
想要把每日的資料複製至 日累積報表
[每日資料]
[日累積]
由於目前 ...
Changbanana 發表於 2017-1-18 11:42
試試看,看看能否幫得上忙.:)
Sub EX()
Dim Rng, Dr
Dim i As Integer
Dim a
With ThisWorkbook.Worksheets("日檢核")
Rng = .[a1].CurrentRegion.Offset(1)
ReDim Dr(UBound(Rng) - 1, 1)
For i = 1 To UBound(Dr)
Dr(i, 1) = .[J2]
Next i
a = MsgBox("需要刪除當日檢核?", vbInformation + vbYesNo, "詢問")
If a = vbYes Then
.[a1].CurrentRegion.Offset(1).ClearContents
End If
End With
With ThisWorkbook.Worksheets("日累積")
.[A65535].End(xlUp).Offset(1).Resize(UBound(Dr), 1).Value = Dr
.[B65535].End(xlUp).Offset(1).Resize(UBound(Rng), UBound(Rng, 2)).Value = Rng
End With
End Sub
複製代碼
作者:
Changbanana
時間:
2017-2-2 16:51
回復
2#
justintoolbox
有成功執行喔~~
結果也是想要的
謝謝你^^
作者:
jsc0518
時間:
2017-2-7 20:23
本帖最後由 jsc0518 於 2017-2-7 20:25 編輯
回復
2#
justintoolbox
請教一下,若要將工作表"日檢核"內的日期自動也把帶入到工作表"日累積" A欄下
要如何做?
[attach]26547[/attach]
[attach]26548[/attach]
[attach]26550[/attach]
作者:
Changbanana
時間:
2017-2-23 11:49
回復
4#
jsc0518
試試~ 我稍稍結合了一下
Sub TEST()
Dim Rng, Dr
Dim i, j As String
Dim x As Integer
i = Sheets("日累積").Range("A65536").End(xlUp).Row '計算有資料最後一列之列數
j = Sheets("日檢核").Range("A65536").End(xlUp).Row
'比對日期
If Worksheets("日累積").Cells(i, 1).Value = Sheets("日檢核").Range("J2") Then MsgBox "早已存過資料!"
If Worksheets("日累積").Cells(i, 1).Value <> Sheets("日檢核").Range("J2") Then
For a = 1 To j - 1
'日期匯出
Sheets("日累積").Cells(i + a, 1).Value = Sheets("日檢核").Range("J2")
Next a
With ThisWorkbook.Worksheets("日檢核")
Rng = .[a1].CurrentRegion.Offset(1)
ReDim Dr(UBound(Rng) - 1, 1)
For x = 1 To UBound(Dr)
Dr(x, 1) = .[J2]
Next x
End With
With ThisWorkbook.Worksheets("日累積")
.[A65535].End(xlUp).Offset(1).Resize(UBound(Dr), 1).Value = Dr
.[B65535].End(xlUp).Offset(1).Resize(UBound(Rng), UBound(Rng, 2)).Value = Rng
End With
MsgBox "資料匯出完成!" ' 匯出完成訊息
End If
End Sub
複製代碼
作者:
jsc0518
時間:
2017-2-23 19:36
回復
5#
Changbanana
感謝您的指導,測試成功
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)