我是Excel宏的新手..
有人能告诉我这个宏的作用吗?
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
答案 0 :(得分:5)
获取活动单元格的行号:
prow = ActiveCell.row
获取该行第1列的值:
num = Cells(prow, 1).Value
阅读有效工作表的名称(此处有错误,应该是wsheet
而不是wshet
):
wshet = ActiveSheet.Name
测试num
是否大于0,单元格A4包含“#”且活动工作表等于名为People_wsheet
的变量或常量。如果是这样,则使用参数people_select_link_to_Document
和process_wbook_path
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
现在,该子例程首先检查活动行的DocumentFile
列是否为空。实际上,测试空虚是一种相当蹩脚的方法,但它可能会这样做。
If Len(Cells(prow, DocumentFile).Value) = 0 Then
如果它是空的,那么我们会显示一个文件对话框来获取文件名:
Fname = Application.GetOpenFilename("Document Files (*.doc;*.pdf),*.doc;*.pdf", 1, "Select the Document file..")
如果选择了文件名(即未取消对话框),我们会将该文件名保存在活动行的DocumentFile
列中以供将来参考:
If Fname <> False Then
Cells(prow, DocumentFile).Value = Fname 'global path
End If
就是这样!