2

Outlook VBA は初めてで、2 つの異なる閉じたブックの同じセルの値を比較しようとしています。

添付ファイルを CSV ファイルとして保存する電子メールから添付ファイルを受信したときに、Excel オブジェクトを作成しました。

次に、ファイル内のヘッダー行が、最初の行に同じヘッダーを持つマスター コピーと一致することを確認したいのですが、オブジェクトを使用してシート名やセルを参照する方法がわかりません。VBA for Excel を使用してさまざまな方法を試しましたが、Outlook では機能しないようです。

誰かが私を助けることができれば、それは大歓迎です。

Function ConvertXls2CSV(sXlsFile As String)

On Error Resume Next

Dim oExcel As Object
Dim oExcelWrkBk As Object
Dim bExcelOpened As Boolean 'Was Excel already open or not
Dim OriginalFile As String
Dim MasterFile As String
Dim Fault As Integer

Set oExcel = GetObject(, "Excel.Application") 'Bind to existing instance of Excel

If Err.Number <> 0 Then 'Could not get instance of Excel, so create a new one
    Err.Clear
    On Error GoTo Error_Handler
    Set oExcel = CreateObject("excel.application")
    bExcelOpened = False
Else 'Excel was already running
    bExcelOpened = True
End If    

Set oExcelWrkBk = oExcel.Workbooks.Open(sXlsFile)
oExcelWrkBk.SaveAs Left(sXlsFile, InStrRev(sXlsFile, ".")) & "csv", xlCSVWindows


/*THIS IS WHERE I WANT TO REFERENCE THE CELLS IN THE WORKBOOKS*/

OriginalFile = oExcelWrkBk.Sheets("PK Price Data").Cells(1, 1).Value
MasterFile = oExcelWrkBk."MasterFile.xls".Sheets("PK Price Data").Cells(1, 1).Value

if OriginalFile = MasterFile then
fault = 1
else fault = 0
end if

oExcelWrkBk.Close False

If bExcelOpened = False Then
   oExcel.Quit
End If

End Function

どうもありがとうメリンダ

4

1 に答える 1

0

私の知る限り、閉じたワークブックへの参照に対処することはできません。ただし、 で表示せずに開くことはできますapplication.screenupdating = false。いくつかの変数への参照の保存が完了したら、ワークブックを閉じて設定するだけです application.screenupdating = true

于 2013-09-03T06:08:51.100 に答える