1

トピックのタイトルが示すように、マクロのヘルプを探しています。私の仕事にはそれが必要なので、クライアントのバックアップが実行されるたびに、彼はメールをメールボックスに送信し、これらのメールはフォルダーにエクスポートされます。メール形式は次のとおりです。

Backup Rapport Success Clients name ファイル バックアップ セット Taak 2012-10-23 (20 30)

マクロはいくつかのことを行う必要があります:

  • クライアントの名前を抽出する
  • 抽出または成功または失敗または失敗したバックアップ
  • そして、右のセルに成功または失敗のメッセージを書き込みます

これは可能ですか?

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
4

1 に答える 1

0

The following will split the string into words (but it will only work if ClientName is one word).

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

There are a lot of ways to enter text into cells. One example:

Range("A1").Value = "Hello"

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

EDIT

Expanded the sub to take a string and a range and enter text:

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

Now call this for each mail-string, instead of writing the whole string in a column:

Call SplitMailStringAndEnterValues("Backup Rapport Geslaagd ClientName File Backup Set Taak 2012-10-23 (20 30)", Range("Sheet2!A2"))
于 2012-10-25T09:16:55.753 に答える