vba excel counta

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

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

我正在从工作簿DB_report.xls调用脚本

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

我想要去的是在哪里

单元格4,1在几个月内具有来自DB_report的工作表1的计数

单元格4,2在几个月内具有来自DB_report的工作表2的计数

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

这之前的行是

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

谢谢

亚伦

好了一点进一步的解释

我想要做的步骤是这样的

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

现在我明白了

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

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

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

(y).cells(a,b)= Application.WorksheetFunction.COUNTA(sheet(3).range(a:A)

而在工作簿“月”

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

我不认为这正是你想要做的,但是它接近并且更加一般化。 它计算了DB_Report.xls的工作表,并使用它来指定months.xls的单元months.xls

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

 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 

这将需要任何错误检查或validation,你需要把它。

您好,欢迎您的意见,但我最后解决了什么问题。

这很简单,我只是想念一些格式

下面的行可以正常工作

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