VBA Outlook, чтобы открыть файл Excel и импортировать данные при открытии - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь настроить следующий процесс.Когда я утром открою Outlook, он будет смотреть в сетевую папку.Если файл в этой папке не имеет сегодняшнюю дату в качестве даты сохранения, он откроет файл и импортирует данные по выбранному пути, а затем сохранит его.

Проблема, с которой я столкнулся сейчас, заключается в том, чтобы заставить ее выполнить процесс импорта.Он откроет файл, но при импорте выдает ошибки.Дает мне «Объект не поддерживает это свойство или метод»

Любая помощь будет принята с благодарностью!

 Sub Application_Startup()

   Dim xlApp As Excel.Application
   Dim sourceWB As Excel.Workbook
   Dim sourceSH As Excel.Worksheet
   Dim oXL As Excel.Application
   Dim oWB As Excel.Workbook

 'Check if file doesn't have today's date (need to write code)


  Set xlApp = New Excel.Application
      With xlApp
      .Visible = True
      .EnableEvents = True
      '.UserControl = True
      '.DisplayAlerts = True
      '.AskToUpdateLinks = True
    End With

 strFile = "S:\NFInventory\groups\CID\CID Database\BigPic Files\BigPic 2019.xlsx"

'Import process (Error starts next line)
 strFile = Application.GetOpenFilename("Text Files (*.PRN),*.PRN", , "Please select text file...")

With wb.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
    .TextFileParseType = xlDelimited
    .TextFileCommaDelimiter = True
    .Refresh
End With

 'open File
  Set sourceWB = xlApp.Workbooks.Open(strFile, , , , , , , , , True)
  Set sourceSH = sourceWB.Worksheets("Sheet1")
  sourceWB.Activate

 'Save and Close
     'Workbooks("BigPic 2019.xlsx").Close SaveChanges:=True

 End Sub

1 Ответ

0 голосов
/ 23 января 2019

Вашим хост-приложением является Outlook, а GetOpenFilename () - функция приложения Excel.

Так что вызывайте его через объект приложения Excel:

strFile = xlApp.GetOpenFilename("Text Files (*.PRN),*.PRN", , "Please select text file...")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...