感悟网 导航

excel用vba计算1至4列中,统计出每行数据大于6的数字和值

作者&投稿:达史 (若有异议请与网页底部的电邮联系)
请高手帮忙在EXCEL中用VBA计算数字的个数。~

样本文件见附件(两种方案,一种为自定义函数,一种是宏代码)
自定义函数用法如下:

代码如下:
Function 数字(ByVal rg As Range) As IntegerDim d As ObjectSet d = CreateObject("scripting.dictionary")For Each c In rg If Len(c) > 0 And VBA.IsNumeric(c) Then d(c.Value) = "" End IfNext数字 = d.CountEnd Function

你前面的语句没有问题,可以简化为
X = 6
For R = 2 To 20
If WorksheetFunction.Sum(Range(Cells(R, X), Cells(R, X + 4))) > 0 Then
Range(Cells(R, X + 5), Cells(R, X + 9)) = Range(Cells(R, X), Cells(R, X + 4)).Value
Else
Cells(R, X + 5) = WorksheetFunction.Sum(Range(Cells(R, X), Cells(R, X + 4)))
Range(Cells(R, X + 6), Cells(R, X + 9)) = 0
End If
Next
后面 For k = 5 To 9以后的语句有问题,变量J是干嘛的看不懂。

是统计出大于6的数字的“个数”还是统计出大于6的数字的“总和”?
一:公式
个数:
=COUNTIF(A1:D500,">6")
总和:
=SUMIF(A1:D500,">6",A1:D500)
二:代码
Sub 求个数()
Dim N&
N = Application.WorksheetFunction.CountIf(Sheet1.Range("A1:D500"), ">6")
End Sub
Sub 求总和()
Dim N&
N = Application.WorksheetFunction.SumIf(Sheet1.Range("A1:D500"), ">6", Sheet1.Range("A1:D500"))
End Sub

此VBA功能为:将所有大于6的数一次放到了第5列,从第一行开始放。个数输出至F1
sub test()
dim i,j,k,l as integer
l=1
for i=1 to 4
for j=1 to 500
if Sheets("表名").cells(i,j)>6 then
Sheets("表名").cells(l,5)=Sheets("表名").cells(i,j)
l=l+1
k=k+1
end if
next j
next i
Sheets("表名").cells(1,6)=k
end sub

Sub 计数()
Dim x%, y%, i%,n
For x = 1 To 500
For y = 1 To 4
If Cells(x, y) > 6 Then i = i + 1: n = n + Cells(x, y)
Next y
Cells(x, 5) = i'第5列写入个数
Cells(x,6)=n'第6列写入和
i = 0:n=0
Next x
End Sub

Sub 求和()
For n = 1 To [d65535].End(xlUp).Row
Cells(n, 5).Select
Selection.FormulaArray = "=SUM(IF(RC[-4]:RC[-1]>6,RC[-4]:RC[-1]))"
Next
End Sub

《excel用vba计算1至4列中,统计出每行数据大于6的数字和值》
答:个数:=COUNTIF(A1:D500,">6")总和:=SUMIF(A1:D500,">6",A1:D500)二:代码 Sub 求个数()Dim N& N = Application.WorksheetFunction.CountIf(Sheet1.Range("A1:D500"), ">6")End Sub Sub 求总和()Dim N& N = Application.WorksheetFunction.SumIf(Sheet1.Range("A1:D500"), ">6"...

《求EXCEL VBA程序:在 EXCECL的A1到A5里依次有数据1,3,9,7,6。要在A6...》
答:'VBA函数,iRng内,除以4余数为res的个数 Application.Volatile If iRng.Cells.Count < 1 Then iMod4 = "#iRng": Exit Function Dim c As Range, n For Each c In iRng If c Mod 4 = Res Then n = n + 1 Next iMod4 = n End Function --- 使用公式:=iMod4(1,a1:c5)可以...

《vba如何读取excel中某单元格的行数或列数》
答:1、将单元格所选单元格的行号和列号,分别用VBA显示在下面的两个单元格中,如下图所示:2、按下Alt+F11,打开VBA编辑界面,选择当前工作表编写代码,如下图所示:3、下面代码是得到当前单元格的行号并放到当前单元格下一个单元格中:4、下面代码是得到当前单元格的列号并放到当前单元格下面第二个单...

《怎么用vba在excel中统计每列有多少行数》
答:A列最底端有数据的单元格 [a65536].end(xlup).row 如果是统计每列有多少非空单元格 就要调用COUNTA函数方便些 WorksheetFunction.CountA (Range("A:A"))

《excel vba中编程实现:选择第二列到第四列 ! 用到2和4 不要用列标 谢谢...》
答:cells 的单元格表示方式是使用数字的 cells(1,1)和A1单元格是一致的

《EXCEL中有6列数 每列1至3个数 想在每列数中选一个组合成新的一行数...》
答:我给你一个6列的通用公式,公式中的x1、x2、x3、x4、x5、x6分别为第1、2、3、4、5、6列的行数。如你举的例子,x1、x2、x3、x4、x5、x6分别对应为3、3、2、1、3、2 A5 =INDIRECT("A"&INT(MOD(ROW(A1)-1,X1*X2*X3*X4*x5*x6)/X2/X3/X4/x5/x6)+1)B5 =INDIRECT("B"&...

《请高手帮忙在EXCEL中用VBA计算数字的个数。》
答:自定义函数用法如下:代码如下:Function 数字(ByVal rg As Range) As IntegerDim d As ObjectSet d = CreateObject("scripting.dictionary")For Each c In rg If Len(c) > 0 And VBA.IsNumeric(c) Then d(c.Value) = "" End IfNext数字 = d.CountEnd Function ...

《用EXCEL的VBA怎么求04,10,13,14,16,19,23,32中选6个数字排列组合 新手...》
答:1 To 3 For I2 = I1 + 1 To 4 For I3 = I2 + 1 To 5 For I4 = I3 + 1 To 6 For I5 = I4 + 1 To 7 For I6 = I5 + 1 To 8 Debug.Print MyArr(I1), MyArr(I2), MyArr(I3), MyArr(I4), MyArr(I5), MyArr(I6)Next Next Next Next Next Next End Sub ...

《EXCEL使用VBA统计A列某数据出现的次数》
答:1、打开Excel,建立空白演示工作簿。2、在工作表中随机生成一些数据。3、然后在表格的另外区域制作出判断条件单元格。4、在结果单元格中先输入函数=MODE(,含有半个括号。5、然后再用鼠标圈选源数据区域单元格,再输入另一半括号。6、按回车键后,函数即可计算出源数据单元格中出现次数最多的数据。

《excel用vba求一组数列的和》
答:试下 Sub 条件求和()ActiveCell.FormulaR1C1 = "=SUMIF(C[-4],RC[-1],C[-3])"Range("O3").Select Selection.AutoFill Destination:=Range("O3:O5"), Type:=xlFillDefault Range("O3:O5").Select Selection.copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网