Cells(4, x) = Application.WorksheetFunction.COUNTA(Workbooks(""DB_Report.xls"").Sheets(x).Range(A:A))
我正在尝试使上述功能正常工作。
我从工作簿DB_report.xls
这将创建一个新工作簿(“月”)并开始填写值。
我想要的是
月份中的单元格4,1
具有来自DB_report
单元格4,2
具有来自DB_report
任何人都可以改写上面的行,所以当“月份是活动工作表我可以从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)
在工作簿“月”中
所以我真正需要的是如何在函数中引用工作簿,工作表和单元格?
答案 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”))