我正在尝试采用我编写的大型程序,并将所有源代码放入excel插件中,以便我可以在一个位置编辑代码并让每个人的程序都可以引用它。我的主要工作簿中有一堆前端工作表,然后添加了名为LaborTrackAddIn的插件。提交用户表单时,显示的一组子功能和功能会根据用户选择创建并保存PDF报告
我尝试用各种已知的方式对引用进行限定,尽管我的许多代码都在工作,但是有些相当大的代码却没有,而且我不确定为什么。我在下面添加了将无法运行的3个相关功能的进展。谁能帮我解决这个问题?我还在寻找有关制作插件和以正确方式构建结构的任何指示。另外,我底部的count列功能说无法限定ws对象引用
Private Sub FRok_Click()
Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("REPORTS")
ws.Visible = True
ws.OLEObjects("repProj").Object.Text = reportsModule.jobNameNum
ws.OLEObjects("repPM").Object.Text = reportsModule.pmName
With Me
If OptionButton1.Value = True Then
Call reportsModule.dangerCodes ''run danger report
ElseIf OptionButton2.Value = True Then ''run active this week
Call reportsModule.getActiveCodes
ElseIf OptionButton5.Value = True Then ''inactive
Call reportsModule.getInactiveCodes
ElseIf OptionButton7.Value = True Then ''all codes for which work has started
Call reportsModule.getAllActiveCodes
End If
End With
MsgBox "One moment please your report is being generated", vbOKOnly
Application.Wait (Now + TimeValue("0:00:01"))
Call reportsModule.sheetTOpdf(ws)
ws.Rows("4:" & (Module1.countRows(ws) + 5)).ClearContents
ws.Visible = xlSheetVeryHidden
filteredProgressReport.Hide
End Sub
Public Sub getInactiveCodes()
Dim tRows
Dim i As Integer, nxtRow As Integer
Dim ws As Worksheet, rpts As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1")
Set rpts = ActiveWorkbook.Worksheets("REPORTS")
ws.Visible = True
rpts.Visible = True
Application.ScreenUpdating = False
For i = 1 To ws.Range("mainTable").Rows.Count
nxtRow = Module1.countRows(rpts) + 1
If ws.ListObjects("mainTable").DataBodyRange(i, 11).Value < 1 _
Or ws.ListObjects("mainTable").DataBodyRange(i, 12).Value < 1 Then
ws.ListObjects("mainTable").ListRows(i).Range.Copy
rpts.Range("A" & nxtRow, "U" & nxtRow).PasteSpecial
Paste:=xlPasteValues
End If
Next i
Call reportsModule.addTotalsRow
Application.ScreenUpdating = True
End Sub
Public Function countColumns(ws As Worksheet, rRow As Integer) As Integer
ws.Range("A" & rRow).Select
Selection.End(xlToRight).Select
countColumns = Selection.Column
End Function
我希望弄清楚我编写的代码中的哪些内容需要更改,以使它们都可以从外接程序中运行。欢迎任何链接或建议。谢谢您的时间