vba excel计数

Posted

技术标签:

【中文标题】vba excel计数【英文标题】:vba excel counta 【发布时间】:2011-08-22 01:34:30 【问题描述】:
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

谢谢

亚伦

好吧,再解释一下

我想做的步骤是这样的

选择工作簿月份.xls 选择表(1) 单元格 (x,y) = counta( 范围 A:A ,在工作表 (DB_report.xls) 的工作表("DB_Report") 中

现在我知道了

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

将在活动工作表中使用。因此,如果活动工作表是工作表 1,那么这将计算同一工作簿的工作表 3 中的单元格数量。我想知道函数中的引用工作表和单元格是否也可以按名称引用工作簿。

当然,我可以 swqap 预订“DB_Report”,将值保存到一个变量中,然后换回预订“Month”并将其复制到单元格中。

或者我可以做 workbook("month").sheet(y).cells(a,b) = Application.WorksheetFunction.COUNTA(sheet(3).range(a:A)

在工作簿“月”中

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

【问题讨论】:

【参考方案1】:

嗨,为 cmets 干杯,但我终于弄清楚了问题所在。

真的很简单,我只是缺少一些格式

下面的行正常工作

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

【讨论】:

【参考方案2】:

我不认为这正是您想要做的,但它很接近并且更概括了一些。它计算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

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

【讨论】:

以上是关于vba excel计数的主要内容,如果未能解决你的问题,请参考以下文章

Excel中的VBA - 如果语句计数器不起作用

VBA脚本上的Excel VBA对象需要错误在计数器时重复行

唯一计数(Excel VBA 与公式)更快的方法

Excel VBA计数和存储所有打开的工作簿列表

自动填充中断一条记录 [Excel-VBA]

Excel VBA - 选择多个值以搜索案例