使用过程中的参数调用过程

时间:2014-05-08 16:33:00

标签: excel vba excel-vba

我正在使用Excel宏,试图减轻负载,所以我不必编写这么多代码。

在第1单元,我有以下内容:

Sub SendData()
    Dim result As Long, firstrow As Long, lastrow As Long
    Dim SheetName As Worksheet

    Call BaseCap1("Sheet8")

End Sub

在第2单元中,我有以下内容:

Sub BaseCap1(SheetName)

    Sheet2.[A1:AC1901].AutoFilter 1, "1"
    Sheet2.[A1:AC1901].AutoFilter 3, "Base Capital"
    Sheet2.[A1:AC1901].AutoFilter Field:=10, Criteria1:=Array("Completed"), Operator:=xlFilterValues
    Sheet2.[E4:E1901,C4:C1901,A4:A1901,J4:J1901,G4:G1901,H4:H1901,I4:I1901,Y4:Y1901].Copy Sheet12.[A1]
    With ThisWorkbook.Sheets("DO NOT USE")
        lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
        firstrow = 1
        SheetName.Range("A3").Value = "Facility Base Capital"

        If lastrow = "1" Then
            If IsEmpty(Sheet12.Range("A1").Value) Then
                SheetName.Range("B3").Value = "0"
            Else
                SheetName.Range("B3").Value = lastrow
            End If
        Else
            SheetName.Range("B3").Value = lastrow
        End If

        SheetName.Range("C3").Value = "Completed"
        SheetName.Range("D3").Value = Application.WorksheetFunction.Sum(.Range("D" & firstrow & ":D" & lastrow))
        SheetName.Range("E3").Value = Application.WorksheetFunction.Sum(.Range("E" & firstrow & ":E" & lastrow))
        SheetName.Range("F3").Value = Application.WorksheetFunction.Sum(.Range("F" & firstrow & ":F" & lastrow))
    End With

在当前状态下,我一直收到错误 - 运行时错误'''':需要对象

我尝试了几种不同的方法,包括尝试将SheetName变量传递给另一个稍有不同错误的变量。

我很感激任何帮助解决这个问题,以便它可以工作。

提前致谢!

1 个答案:

答案 0 :(得分:1)

SheetName是一个字符串(尽管你还没有这样声明)。它没有您尝试使用的任何属性。您需要对NAME为SheetName的工作表的引用。

Sub BaseCap1(SheetName as String) '加上这个:

Dim oSheet As Worksheet
Set oSheet = ActiveWorkbook.Worksheets(Sheetname)

然后在代码的其余部分替换oSheet for Sheetname。