vba excel counta

时间:2011-05-09 23:30:16

标签: vba reference count excel

Cells(4, x) = Application.WorksheetFunction.COUNTA(Workbooks(""DB_Report.xls"").Sheets(x).Range(A:A))

我正在尝试使上述功能正常工作。

我从工作簿DB_report.xls

调用脚本

这将创建一个新工作簿(“月”)并开始填写值。

我想要的是

月份中的

单元格4,1具有来自DB_report

的表单1的计数 月份中的

单元格4,2具有来自DB_report

的工作表2的计数

任何人都可以改写上面的行,所以当“月份是活动工作表我可以从DB_Report调用counta

此前的行是

NameSH = Workbooks("DB_Report.xls").Sheets(x).Name and this works fine and returns the name of work sheet x

谢谢

亚伦

好的进一步说明

我想要做的步骤有点像这样

选择工作簿months.xls 选择表(1) cell(x,y)= counta(范围A:A,在工作表的工作表(“DB_Report”)中(DB_report.xls)

现在我知道了

Cells(4,x)= Application.WorksheetFunction.COUNTA(sheet(3).range(a:A)

将在活动工作表中使用。因此,如果活动工作表是工作表1,则会计算同一工作簿的工作表3中的单元数。我想知道函数中是否还有refrenced sheet和cells,我也可以通过名称来引用工作簿。

当然我可以swqap预订“DB_Report”将值保存到varible然后交换回预订“Month”并将其复制到单元格。

或者我可以做工作簿(“月”)。sheet(y).cells(a,b)= Application.WorksheetFunction.COUNTA(sheet(3).range。(a:A)

在工作簿“月”中

所以我真正需要的是如何在函数中引用工作簿,工作表和单元格?

2 个答案:

答案 0 :(得分:1)

我不认为这正是你想要做的,但它接近并且更加普遍。它将DB_Report.xls中的工作表计算在内,并使用它来指定months.xls

中的单元格数量

如果您从DB_Report.xls运行宏,则无需指定有关该工作簿或工作表的任何内容。

Sub counts()
    Dim sheetcounts As Integer
    Dim countas() As Integer
    Dim index As Integer
    Dim wksht As Worksheet
    Dim newbook As Workbook

    sheetcounts = ActiveWorkbook.Sheets.Count
    ReDim countas(sheetcounts)

    For Each wksht In ActiveWorkbook.Sheets
        countas(index) = Application.WorksheetFunction.CountA(wksht.Range("A:A"))
        index = index + 1
    Next

    Set newbook = Workbooks.Add
    newbook.Activate
    newbook.ActiveSheet.Range(Cells(4, 1), Cells(4, sheetcounts)) = countas
    newbook.SaveAs ("months.xls")

End Sub

这需要您进行任何错误检查或验证。

答案 1 :(得分:1)

嗨干杯的评论,但我最终解决了问题所在。

这很简单我真的错过了一些格式

以下行正常工作

cell(x,y)= Application.WorksheetFunction.CountA(Workbooks(“DB_Report.xls”)。Sheets(x).Range(“A:A”))