返回列表 上一主題 發帖

[發問] 多張工作表資料整合於總表

[發問] 多張工作表資料整合於總表

想將SUMMARY以外的每一張WORKSHEET內的B4的每一個編號, 在SUMMARY的A2起覆制30次, 下列寫的太不足了, 可以協助嗎? 爬文很久也想不通:'(

Sub SummurizeSheets()
    Dim ws As Worksheet
    Dim myrange As Range
   
    Application.ScreenUpdating = False
    Sheets("Summary").Activate

    For Each ws In Worksheets
        If ws.Name <> "Summary" Then
            Sheets("summary").myrange("A2:A30").End(xlUp) = ws.Range("B4:B3").Copy
            ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0)
        End If
    Next ws
End Sub

VBA 資料轉置4.rar (25.38 KB)

回復 2# lpk187

新問題, 我想每次行駛COPY時, 要先將SUMMARY的內容CLEAR, 加入下列, 但出現424 的ERROR, 是甚府問題呢?:dizzy:
Sub Clear_Contents_Range()
    Workbook.Sheets("summary").Cells.ClearContents
End Sub

TOP

回復 7# GBKEE

CLEAR CONTENT成功了, 但因WORKBOOK內有超過1張SHEET, 每張SHEET均由B4起有不同長度的數值, 現在是取了每工作表的B4數值, 我改了下列, 卻又只取了每工作表的最後一列數值, 請指導?

Sheets("summary").Range("A65536").End(xlUp).Offset(1).Resize(30) = VBA.rar (26.49 KB)

TOP

回復 9# lpk187

對不起, 按你的方法只能將每個工作表的B4內容顯示1次.


如改為RESIZE 30, 則出配#NA



問題在那呢?:dizzy:

TOP

回復 11# lpk187

多謝你不辭勞苦地給我解答, 雖然學習中, 會繼續努力:L

TOP

回復 5# GBKEE

早前給我的指導, 現求教如需每個PDF均發出一個電郵, 下列的程式要如何更改呢? 求賜教!

Sub ex()
Set d = CreateObject("Scripting.Dictionary")
With Worksheets("attendance report")
For Each a In .Range(.[E4], .[E4].End(xlDown))
  d(a.Value) = ""         '取得所有不重複分店
Next
F = InputBox("Enter your month")

For Each ky In d.keys
     .Range("B4").AutoFilter Field:=4, Criteria1:=ky
     If Dir("C:\Users\mariasfy\Desktop\" & ky & "_" & F & ".pdf") <> "" Then Kill "C:\Users\mariasfy\Desktop\" & ky & "_" & F & "201507.pdf" '同名檔案刪除
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\mariasfy\Desktop\" & ky & "_" & F & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False  '另存成PDF檔案

Next

Dim Mail_Object, Mail_Single As Variant
Email_Subject = "門市出勤報告"
Email_Cc = ""
Email_Bcc = ""
Email_Body = "門市出勤報告, 請回覆"

Set Mail_Object = CreateObject("Outlook.Application")
Set Mail_Single = Mail_Object.CreateItem(o)

With Mail_Single
.Subject = Email_Subject
.To = Email_Send_To
.CC = Email_Cc
.BCC = Email_Bcc
.Body = Email_Body
.Attachments.Add ("C:\Users\mariasfy\Desktop\" & ky & "_" & F & ".pdf")
.Display
'.send
End With

If .FilterMode = True Then .ShowAllData '顯示所有資料

End With

End Sub

TOP

回復 11# GBKEE

讓我試一下, 感激!:'(

TOP

本帖最後由 missbb 於 2015-8-8 23:29 編輯

回復 12# missbb

我可以將工作表ATTENDANCE REPORT V3:AZ3的日期轉置到工作表LEAVE SUMMAy, 但v3:AZ3如何以copy 30次對應每個員工, 因員工不員1個?

如何可以將每個員工的ATTENDANCE REPORT內的"假期/例假/備註"列內的勞或例按員工及日期配置於leave summary的d欄呢? 用函數(IF(ISERROR(INDEX('ATTENDANCE REPORT'!$1:$1048576,MATCH($A$2,'ATTENDANCE REPORT'!$M:$M,0),MATCH(DAY($C2),'ATTENDANCE REPORT'!$3:$3,0))),"",INDEX('ATTENDANCE REPORT'!$1:$1048576,MATCH($A$2,'ATTENDANCE REPORT'!$M:$M,0),MATCH(DAY($C2),'ATTENDANCE REPORT'!$3:$3,0)))是可以做到, 或如何將函數加入vba內?

未完的vba:
Sheets("attendance report").Range("v3:az3").Copy
Sheets("leave summary").Range("c2").PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True
   
感激! 轉置函數.rar (285.08 KB)

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題