0

1 つの行で動作するように作成されたマクロがあります。代わりに、強調表示されているすべての行でこのマクロを実行したいと考えています。

選択した行間をループして、それぞれに対してマクロを実行する方法はありますか。

会社のポリシーにより、マクロ全体を表示することはできませんが、基本的には、Excel で値を 1 行で取得し、Word テンプレートに入力します。マクロの開始は次のとおりです。

Sub OpenForm()
With Selection
    Dim pappWord As Object
    Dim docWord As Object
    Dim wb As Excel.Workbook
    Dim TodayDate As String
    Dim Path As String

    Set wb = ActiveWorkbook
    TodayDate = Format(Date, "mmmm d, yyyy")
    Path = wb.Path & "\MAF Template.dot"

    On Error GoTo ErrorHandler

     'Create a new Word Session
    Set pappWord = CreateObject("Word.Application")

    On Error GoTo ErrorHandler

     'Open document in word
    Set docWord = pappWord.Documents.Add(Path)
    'Blank for Qty
    docWord.FormFields("Text38").Result = Range(ActiveCell.EntireRow.Address)(1, 2) 'Part of System (System ID)

....より多くのフィールドを入力し、次で終了します。

    With pappWord
        .Visible = True
        .ActiveWindow.WindowState = 0
        .Activate
    End With


     'Release the Word object to save memory and exit macro
ErrorExit:
    Set pappWord = Nothing
    Exit Sub

     'Error Handling routine
ErrorHandler:
    If Err Then
        MsgBox "Error No: " & Err.Number & "; There is a problem"
        If Not pappWord Is Nothing Then
            pappWord.Quit False
        End If
        Resume ErrorExit
    End If
End With
End Sub

したがって、すべての行に対してこれを実行するのではなく、単一の Excel 行に対して機能します。いくつかの行を選択し、それらすべてに対してマクロを実行したいと考えています。

ありがとう、

4

2 に答える 2

0

これを試して:

Dim a As Range, b As Range

Set a = Selection

For Each b In a.Rows

    b.Value = "xpto"
    //your code will here...but only seeing your code to be more precise

Next
于 2012-07-03T21:58:26.610 に答える
0

Q: 選択した行間をループして、それぞれに対してマクロを実行する方法はありますか? A: はい。たとえば、「VBAScript セル範囲」は Google です。例えば:

「それが役立つことを願っています...少なくとも少し。

私たちがこれ以上お手伝いする前に、いくつかのコードを投稿して、アプリケーションについて詳しく説明する必要があります。

于 2012-07-03T21:50:55.860 に答える