乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > <em>VBA</em>数据分类求和,具体如下图所示:请高手解答!谢谢-office vba 字

<em>VBA</em>数据分类求和,具体如下图所示:请高手解答!谢谢-office vba 字

作者:乔山办公网日期:

返回目录:office365


如下,在任意单元格被编辑时自动激活vba

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim i%
 For i = 1 To Cells(4 ^ 8, 4).End(xlUp).Row
  If Cells(i, 4) = 0 Then Cells(i, 4).EntireRow.Hidden = True
 Next
End Sub


Sub gubt()
Dim i As Integer
Dim RRT As Range
Dim ART As Range
Dim BRT As Range
Dim CRT As Range
For i = 3 To [C65536].End(xlUp).Row
RRT = Range("C" & i)
If (RRT.Value = "W01") Then
ART = Range("D" & i)
Range("G3") = Range("G3") + ART
ElseIf (RRT.Value = "W02") Then
BRT = Range("D" & i)
Range("G4") = Range("G4") + BRT
ElseIf (RRT.Value = "W03") Then
CRT = Range("D" & i)
Range("G5") = Range("G5") + CRT
End If
Next i

End Sub
可以用字典法完成。

创建字典的两个方法
1 引用 c:\windows\system32\scrrun.dll 然后e799bee5baa6e997aee7ad94e59b9ee7ad94365 dim d as new Dictionary
2 Set d = CreateObject("Scripting.Dictionary")
字典的四个属性
CompareMode 决定key的比较方法 BinaryCompare(默认方法) 二进制方式比较,即a,A是不同字符
TextCompare '文本方式比较,即a,A是相同字符
vbDatabaseCompare 仅用于 Microsoft Access。进行基于您自己数据库中信息的比较。
如果用recordset做key的话vbDatabaseCompare方式就有用了,因为用的少没有测试过
Count 计算字典中的条目数量 s = d.count s 是一个long值
Key 也就是Item的代码通常是整数或字符串,可以是除数组外的任何类型,在一个字典中每一个key都是唯一的
一般利用这个特点去除重复值
Item 可以是任何对象(不含自定义数据):数字,字符串,数组,对象(窗体,控件,文件。。。。)
字典的六个方法
Add 向字典添加内容 d.add "a",10000,或 d("王先生")= "010-87654321"
向字典添加对象 set d("mysheet") = Sheet1 Set d("mybook") = ThisWorkbook
注意 set 关键字
Exists 判断keys中有没有要找的key,返回 true 或 false
s = d.exists("王先生"), s 是 true 因为上面已经添加了王先生
Keys 学过英文吧?Key的复数形式,返回一个一维数组 arr= d.keys
Items 同上 arr = d.items
Remove 按照key从字典中删除一个项目 d.remove("王先生")
RemoveAll 清空字典 d.RemoveAll 此时 d.count 为 0字典简单,好学又好用 总共10种属性方法.
描述
在一个 Dictionary 对象中设置一个 key。
语法
object.Key(key) = newkey
Key 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名字。
key 必需的。被更改的 Key值。
newkey 必需的。替换指定 key 的新值。

说明
如果在更改某个 key 时,没有找到 key,则会出现运行时错误。
Item 属性

描述
对 Dictionary 对象中指定的 Key,设置或返回一个 Item 。对于集合来说,基于指定的 Key ,返回一个 Item 。读/写属性。
语法
object.Item(key) [= newitem]
Item 属性具有下列部分:
部分 描述
object 必需的。总是一个集合或 Dictionary 对象的名称。
key 必需的。与被检索或添加的条目相关联的 Key 。
newitem 可选的。仅用于 Dictionary 对象;没有用于集合的应用程序。如果提供的话,newitem 是与指定的 Key 相关联的新值。
说明
如果在改变某个 item 时,没有找到 key,则用指定的newitem创建一个新的 key 。如果在试图返回某个已存在条目时,没有找到 key,则创建一个新 key,且其相应的条目为空。
Count 属性

描述
返回集合或 Dictionary 对象中的条目数。只读。
语法
object.Count
object 总是“应用于”列表中某一项的名称。
说明
下面的代码举例说明了 Count 属性的使用方法:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.Keys '获得关键字
For i = 0 To d.Count -1 '遍及数组
Print a(i) '打印关键字
Next
...

CompareMode 属性

描述
设置或返回某个 Dictionary 对象中的比较字符串关键字的比较模式。
语法
object.CompareMode[ = compare]
CompareMode 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名称。
compare 可选的。如果提供的话,compare 是一个代表比较模式的值,该比较模式用于象 StrComp 这样的函数。

设置
compare 参数可以具有下列值:
常数 值 描述
VbUseCompareOption –1 使用 Option Compare 语句的设置值进行比较。
vbBinaryCompare 0 进行二进制比较。
vbTextCompare 1 进行文字比较。
vbDatabaseCompare 2 仅用于 Microsoft Access。进行基于您自己数据库中信息的比较。

说明
如果试图对已经包含数据的 Dictionary 对象的比较模式进行更改的话,就会出错。
CompareMode 属性所用的参数值与 StrComp 函数所用的 compare 参数相同。可以用大于 2 的值表示使用特定 Locale IDs (LCID) 的比较。

相关阅读

  • <em>Office</em> <em>2013</em>为什么还是用&

  • 乔山办公网office365
  • 旧版本的VBA裏面要改一些代码,才能在2013裏面用,636f7079e79fa5e98193362如我的代码:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Str
  • Excel2010怎样打开Vba编辑器-office用vba,officevba

  • 乔山办公网office365
  • 第一步:打开word,如果百功能区有开发工具选项,跳到步骤四,如果没有,继度续第二步:打开【文件】选项,点选【选项】第三步:选择“自定义功能区”中点选“开发工具内”,然后
  • 【加急重赏】<em>office</em> <em>2010</em>

  • 乔山办公网office365
  • 已发office2010 vba的ptrsafe" src="/uploads/tu/733.jpg" style="width: 400px; height: 267px;" />第1种方法: 如果你复手头有Office 2010的安装程序或电脑有安装文档的话在控制面板中打开程序和功能,选择Off
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网