开发者

Excel macro - can any one explain this?

开发者 https://www.devze.com 2023-02-15 17:28 出处:网络
I am new to Excel macros.. Can anyone tell 开发者_JS百科me what this macro does? Sub People_Add_Document()

I am new to Excel macros..

Can anyone tell 开发者_JS百科me what this macro does?

Sub People_Add_Document()

    prow = ActiveCell.row
    num = Cells(prow, 1).Value
    wshet = ActiveSheet.Name

    If (Val(num) > 0) _
       And (Cells(4, 1).Value = "#") _
       And (wsheet = People_wsheet) _
    Then
        people_select_link_to_Document process_wbook_path, prow
    End If
  End Sub



Sub people_select_link_to_Document(process_wbook_path, prow)

        If Len(Cells(prow, DocumentFile).Value) = 0 Then
        Fname = Application.GetOpenFilename("Document Files (*.doc;*.pdf),*.doc;*.pdf", 1, "Select the Document file..")

        If Fname <> False Then

            Cells(prow, DocumentFile).Value = Fname 'global path

        End If

    End If

End Sub


Get the row number of the active cell:

prow = ActiveCell.row

Get the value in column 1 of that row:

num = Cells(prow, 1).Value

Read the name of the active worksheet (there is an error here, should read wsheet rather than wshet):

wshet = ActiveSheet.Name

Test if num is greater than 0, and the cell A4 contains "#" and the active worksheet is equal to a variable or constant called People_wsheet. And if so, a subroutine called people_select_link_to_Document is called with parameters process_wbook_path and prow

If (Val(num) > 0) _
   And (Cells(4, 1).Value = "#") _
   And (wsheet = People_wsheet) _
Then
    people_select_link_to_Document process_wbook_path, prow
End If

Now, that subroutine first of all checks to see if the DocumentFile column of the active row is empty. Actually it's a rather lame way to test emptyness, but it will probably do.

    If Len(Cells(prow, DocumentFile).Value) = 0 Then

And if it is empty then we show a file dialog to obtain a file name:

    Fname = Application.GetOpenFilename("Document Files (*.doc;*.pdf),*.doc;*.pdf", 1, "Select the Document file..")

If a filename has been selected (i.e. the dialog is not cancelled) then we save that file name in the DocumentFile column of the active row for future reference:

    If Fname <> False Then

        Cells(prow, DocumentFile).Value = Fname 'global path

    End If

And that's it!

0

精彩评论

暂无评论...
验证码 换一张
取 消