Dim count As Integer
Dim myData As Workbook
Dim col As Range, rng As Range, n#, b#
Set col = Columns(1) 'choose the column to count the values from
SetmyData=Workbooks.Open("C:\Users\xyz\Desktop\cas\Book3.xlsx")'selecting a workbook'
Worksheets("sheet1").Select
Set rng = Intersect(col, ActiveSheet.UsedRange)
On Error Resume Next
b = rng.Cells.SpecialCells(xlCellTypeBlanks).count'applying the count function'
n = rng.Cells.count - b - 1
On Error GoTo 0
Worksheets("sheet1").Select
count = n
Set myData = Workbooks.Open("C:\Users\xyz\Desktop\cas\Book2.xlsx")'used to update the data in another workbook
Worksheets("sheet1").Select
我无法选择工作簿来应用计数算法。 运行时错误 - 应用程序定义或对象定义错误
答案 0 :(得分:1)
下面的代码将为myData
工作簿中“sheet1”中的“A”列中的无空单元格计数。
您可以避免所有不必要的Select
,这会降低您的代码运行时间。
此外,您可以使用WorksheetFunction.CountA
函数计算范围内非空的单元格数。
<强>代码强>
Option Explicit
Sub CountNonEmptyCells()
Dim MyCount As Long
Dim myData As Workbook
Dim Rng As Range
Set myData = Workbooks.Open("C:\Users\xyz\Desktop\cas\Book3.xlsx") ' selecting a workbook'
With myData.Worksheets("sheet1")
Set Rng = Intersect(.Columns(1), .UsedRange)
MyCount = WorksheetFunction.CountA(Rng)
End With
End Sub