Excelmacros如果文件存在

所以像题目标题所说,我正在寻找一些macros的帮助。 我需要它作为我的工作,所以每次执行客户端备份时,都会向邮箱发送邮件,并将这些邮件导出到文件夹中。 这是邮件格式:

Backup Rapport Success客户名称文件备份集Taak 2012-10-23(20 30)

macros的需要做一些事情:

  • 提取客户端的名称
  • 提取或备份whas成功或失败或错过
  • 并写入成功或失败的消息在正确的单元格

这甚至有可能吗?

Public Function FileFolderExists(strFullPath As String) As Boolean 'Author : Ken Puls (www.excelguru.ca) 'Macro Purpose: Check if a file or folder exists On Error GoTo EarlyExit If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True EarlyExit: On Error GoTo 0 End Function Public Sub TestFolderExistence() 'Author : Ken Puls (www.excelguru.ca) 'Macro Purpose: Test if directory exists If FileFolderExists("c:\test") Then MsgBox "Folder exists!" Else MsgBox "Folder does not exist!" End If End Sub 

以下将把string拆分成单词(但只有在ClientName是一个单词的情况下才会起作用)。

 Sub Test() Const sIn As String = "Backup Rapport Geslaagd ClientName File Backup Set Taak 2012-10-23 (20 30), " Dim sArr() As String sArr = Split(sIn, Space(1)) Debug.Print "Success=" & sArr(2) Debug.Print "ClientName=" & sArr(3) Debug.Print "Date=" & sArr(8) End Sub 

有很多方法可以将文本input到单元格中。 一个例子:

 Range("A1").Value = "Hello" Range("A2").Value = sArr(2) 

编辑

展开sub来取一个string和一个范围并input文本:

 Option Explicit Sub SplitMailStringAndEnterValues(psMail As String, poRange As Range) Dim sArr() As String '***** Check that poRange is an object If Not poRange Is Nothing Then sArr = Split(psMail, Space(1)) '***** Check that sArr is an array '***** and that it contains at least 9 strings If IsArray(sArr) And UBound(sArr) >= 8 Then '***** Enter values starting in range poRange and use '***** offset to place other values to the right poRange.Value = sArr(2) 'Success poRange.Offset(0, 1).Value = sArr(3) 'ClientName poRange.Offset(0, 2).Value = sArr(8) 'Date End If End If End Sub 

现在,为每个邮件string调用它,而不是将整个string写入列:

 Call SplitMailStringAndEnterValues("Backup Rapport Geslaagd ClientName File Backup Set Taak 2012-10-23 (20 30)", Range("Sheet2!A2"))