2016-06-22 3 views
0

これは面白いです。だから、私はこのテンプレートを共有ポイントのリストからアイテムをロードして、アイテムを使って処理します。私の電子メールにExcelの画像をカットアンドペーストしようとしていますが、正しく機能していません。

私がする必要があることの1つは、Excel文書のスクリーンショットを取って電子メールに添付して送信できることです。問題は、共有ドライブ上のフォルダにあるテンプレートのExcelドキュメントを使用していることです。このテンプレートから、毎日レポートを作成します。この部分はうまくいきます。ちょうどカットアンドペーストの問題です。これは、テンプレートドキュメントからスクリーンショットを取り出し、それをテンプレートドキュメントに追加するだけです。私が作成したものではありませんこれは必要なものです。とにかく

、私のコード:設計どおりCopyPictureが働いていると仮定すると、

run_date = Date 
    Dim s2 As String 
    s2 = Format(run_date, "MM-dd-yyyy") 
    Dim FS As Object 

Dim FullPath As String 
FullPath = "\\path\Report\Reports\Status Reports\Daily\DailyReportStatusFor" + s2 + ".xlsm" 

     Set objXL = CreateObject("Excel.Application") 
     objXL.DisplayAlerts = False 
     objXL.Application.Workbooks.Open FullPath 
     Set objActiveWkbk = objXL.Application.ActiveWorkbook 

' Where you will enter Sharepoint location path 
    objXL.Application.Workbooks.Open FullPath 



      objXL.ActiveWorkbook.SaveAs Filename:= _ 
       "https://Sharepoint/lists/shared documents/DailyReportStatusFor" + s2 + ".xlsm", FileFormat:=1, CreateBackup:=False 


    Range("'owssvr'!A1:O18").CopyPicture 
    Sheets("Image").Select 
    Range("A1").Select 
    ActiveSheet.Paste 

Dim objOLApp As Object 'Outlook.Application 
Dim outItem As Object 'Outlook.MailItem 
Dim outFolder As Object 'MAPIFolder 
Dim DestFolder As Object 'MAPIFolder 
Dim outNameSpace As Object 'NameSpace 
Dim lngAttachment As Long 
SendFrom = "[email protected]" 
SendTo = "[email protected]" 
ccTo = "[email protected]" 
EmailSubject = "Dashboard - Daily Review Status for " + s2 
EmailBody = "Attached is the Dashboard - Daily Review Status for " + s2 
'Set application settings 
With Application 
.ScreenUpdating = False 
.EnableEvents = False 
End With 

Sheets("Image").Select 
Range("A1").Select 
Set Sendrng = Selection 
With Sendrng 

ActiveWorkbook.EnvelopeVisible = False 
With .Parent.MailEnvelope 
With .Item 

.Subject = EmailSubject 
.To = SendTo 
.CC = ccTo 
.SentOnBehalfOfName = SendFrom  
.Attachments.Add ("\\Path to report\Report\Reports\Status Reports\Daily\DailyReportStatusFor" + s2 + ".xlsm") 
.Body = "Attached is the Dashboard - Daily Review Status for " + s2 
.Send 
End With 
End With 
'Outlook_SendEmail = True 
End With 
    objXL.ActiveWorkbook.Close SaveChanges:=False 


    ' objXL.Application.COMAddIns("AmericanExpress.ExcelMetadataAddin").Connect = True 
    objXL.DisplayAlerts = True 
    Set objActiveWkbk = Nothing 
    objXL.Application.Quit 
    Set objXL = Nothing 
    Set objNet = Nothing 
    Set FS = Nothing 
    Set App = Nothing 
    Set Itm = Nothing 
    End Sub 
+0

コピーしようとしているブック/シートがわかりません - コードは正常に動作していると思いますか?どのブック/シートを貼り付けようとしていますか?FullPathまたはSaveAsファイルですか? – dbmitch

+0

したがって、このコードを使用しているワークブックからコピーしようとしています: 範囲( "'owssvr'!A1:O18」)CopyPicture シート("イメージ ")選択 範囲(" A1 ") .Select ActiveSheet.Paste – Mike

+0

ブック "owssvr"がどのブックにあるのかを質問しています – dbmitch

答えて

0

、あなたはおそらく

Range("'owssvr'!A1:O18").CopyPicture 

と、この行の前に

Sheets("Image").Select 
後パス

を再開する必要があります

2行の間に行を挿入してください:

Set objActiveWkbk = objXL.Application.Workbooks.Open FullPath 
+0

悲しいことに、それは私に構文エラーを与えます。 – Mike

+0

悲しいことに、助けにならない - あなたにエラーを与えるもの - 自分のコードで使っているのと同じ行を使っているだけです。あなたの新しいコードとは何ですか?また、どの行にエラーが表示され、エラーメッセージは何ですか? – dbmitch

+0

あなたが私に追加したこの行からエラーが発生していたことをお手伝いします:Set objActiveWkbk = objXL.Application.Workbooks.Open FullPathこれを言うために変更しました:objXL.Application.Workbooks.Open FullPathその行に構文エラーがあります。私はそれを変更した後も、この行では何かが間違っていると言って、まだ動作しませんでした:Range( "'owssvr'!A1:O18")。 – Mike

関連する問題