0

次のジョブを実行するにはマクロが必要です。

私は6枚のワークブックを持っています。それぞれ違う名前で。シート名は ENT、GHD、T3 などです。

各シートの内容をコピーし、日付とタイムスタンプを付けて別の名前で別のワークブックに保存したいと考えています。

たとえば、シート ENT は XYZ レポート DATE TIME として保存する必要があります。xlsx とこのファイルを Outlook に添付する必要があります。

同様に、GHD の場合、ファイル名は ABC Report DATE TIME にする必要があります。xlsx. T3シートと残りの3シートも同様です。これらのファイルはすべて、さまざまな人に郵送されます。

これらの新しいファイルであるキャッチは、作成元の元のファイルのフォルダーに保存する必要があります。

4

2 に答える 2

0

したがって、次のようなワークシートをループします。

for Each xSheet In activeworkbook.worksheets

次に、ワークシート名とワークブック パスを使用して saveas メソッドを呼び出します。

xsheet.saveas activeworkbook.path & xSheet.Name & " Report " & vba.forma(now, "dd mmm yyyy hhmmss"), xlnormal

次に、Outlook メール アイテムを作成し、受信者、件名、および添付ファイルを設定して、送信します...

これで始められるはずです。次に、参照に Outlook アプリケーションへの参照を追加して、オブジェクトを使用できるようにします...

HTH

フィリップ

于 2013-03-15T17:12:46.700 に答える
-1
Sub COMEON()
  Dim onePublishObject As PublishObject
  Dim oneSheet As Worksheet
  Dim scriptingObject As Object
  Dim outlookApplication As Object
  Dim outlookMail As Object
  Dim htmlBody As String
  Dim htmlFile As String
  Dim textStream, fil As String
  Dim dummy As Workbook


  Today = Format(Now(), "dd-mm-yyyy")

  Set dummy = ActiveWorkbook
  Set scriptingObject = CreateObject("Scripting.FileSystemObject")
  Set outlookApplication = CreateObject("Outlook.Application")
  For Each oneSheet In ActiveWorkbook.Worksheets




                                                        Dim StrBody As String
                                                        StrBody = " THIS IS A TEST" & " " & UCase(oneSheet.Name) & " " & "XYZ," & vbNewLine & _
                                                        vbNewLine & _
                                                        "Please FIND ATTACHED <B>'XYZ REPORT'<B>"





    Application.DisplayAlerts = False
    Sheets(oneSheet.Name).Copy
    ActiveWorkbook.SaveAs dummy.Path & "\" & oneSheet.Name & ".xlsx"
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    Set outlookMail = outlookApplication.CreateItem(0)
    With outlookMail
        .htmlBody = StrBody & htmlBody
        .attachments.Add dummy.Path & "\" & oneSheet.Name & ".xlsx"
        .Display
        .Subject = "XYZ Report" & " " & UCase(oneSheet.Name) & " " & "(" & Today & ")"

    End With
  Next oneSheet
End Sub
于 2013-03-19T05:23:52.553 に答える