首页 > 软件 > 求vba代码:a列末尾几相同日期,列头条件类别1--5,日期加类别求和,输出到b2:b6

求vba代码:a列末尾几相同日期,列头条件类别1--5,日期加类别求和,输出到b2:b6

软件 2024-08-26

求VBA代码大全

1:打开所有隐藏工作表
2:循环宏
3:录制宏时调用“停止录制”工具栏
4:高级筛选5列不重复数据至指定表
5:双击单元执行宏(工作表代码)
6:双击指定区域单元执行宏(工作表代码)
7:进入单元执行宏(工作表代码)
8:进入指定区域单元执行宏(工作表代码)
9:在多个宏中依次循环执行一个(控件按钮代码)
10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
12:根据A1单元文本隐藏/显示按钮(控件按钮代码)
13:当前单元返回按钮名称(控件按钮代码)
14:当前单元内容返回到按钮名称(控件按钮代码)
15:奇偶页分别打印
16:自动打印多工作表第一页
17:查找A列文本循环插入分页符
18:将A列最后数据行以上的所有B列图片大小调整为所在单元大小
19:返回光标所在行数20:在A1返回当前选中单元格数量
21:返回当前工作簿中工作表数量
22:返回光标选择区域的行数和列数
23:工作表中包含数据的最大行数
24:返回A列数据的最大行数
25:将所选区域文本插入新建文本框
26:批量插入地址批注
27:批量插入统一批注
28:以A1单元内容批量插入批注
29:不连续区域插入当前文件名和表名及地址
30:不连续区域录入当前单元地址
31:连续区域录入当前单元地址
32:返回当前单元地址
33:不连续区域录入当前日期
34:不连续区域录入当前数字日期
35:不连续区域录入当前日期和时间
36:不连续区域录入对勾
37:不连续区域录入当前文件名
38:不连续区域添加文本
39:不连续区域插入文本
40:从指定位置向下同时录入多单元指定内容
41:按aa工作表A列的内容排列工作表标签顺序
42:以A1单元文本作表名插入工作表
43:删除所有未选定工作表
44:工作表标签排序
45:定义指定工作表标签颜色
46:在目录表建立本工作簿中各表链接目录
47:建立工作表文本目录
48:查另一文件的所有表名
49:当前单元录入计算机名
50:当前单元录入计算机用户名
51:解除所有工作表保护
52:为指定工作表加指定密码保护表
53:在有密码的工作表执行代码
54:执行前需要验证密码的宏(控件按钮代码)
55:执行前需要验证密码的宏()
56:拷贝A1公式和格式到A2
57:复制单元数值
58:插入数值条件格式
59:插入透明批注
60:添加文本
61:光标定位到指定工作表A列最后数据行下一单元
62:定位选定单元格式相同的所有单元格
63:按当前单元文本定位
64:按固定文本定位
65:删除包含固定文本单元的行或列
66:定位数据及区域以上的空值
67:右侧单元自动加5(工作表代码)
68:当前单元加2
69:A列等于A列减B列
70:用于光标选定多区域跳转指定单元(工作表代码)
71:将A1单元录入的数据累加到B1单元(工作表代码)
72:在指定颜色区域选择单元时添加/取消"√"(工作表代码)
73:在指定区域选择单元时添加/取消"√"(工作表代码)
74:双击指定单元,循环录入文本(工作表代码)
75:双击指定单元,循环录入文本(工作表代码)
76:单元区域引用(工作表代码)
77:在指定区域选择单元时数值加1(工作表代码)
78:混合文本的编号
79:指定区域单元双击数据累加(工作表代码)
80:选择单元区域触发事件(工作表代码)
81:当修改指定单元内容时自动执行宏(工作表代码)
82:被指定单元内容限制执行宏
83:双击单元隐藏该行(工作表代码)
84:高亮显示行(工作表代码)
85:高亮显示行和列(工作表代码)
86:为指定工作表设置滚动范围(工作簿代码)
87:在指定单元记录打印和预览次数(工作簿代码)
88:自动数字金额转大写(工作表代码)
89:将所有工作表的A1单元作为单击按钮(工作簿代码)
90:闹钟——到指定时间执行宏(工作簿代码)
91:改变Excel界面标题的宏(工作簿代码)
92:在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)
93:B列录入数据时在A列返回记录时间(工作表代码)
94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)
95:指定单元显示光标位置内容(工作表代码)
96:每编辑一个单元保存文件
97:指定允许编辑区域
98:解除允许编辑区域限制
99:删除指定行
100:删除A列为指定内容的行
1:打开所有隐藏工作表
Sub打开所有隐藏工作表()
DimiAsInteger
Fori=1ToSheets.Count
Sheets(i).Visible=True
Nexti
EndSub

2:循环宏
Sub循环()

AAA=Range("C2")

DimiAsLong
DimtimesAsLong
times=AAA
'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
Fori=1Totimes
Call过滤一行

IfRange("完成标志")="完成"Then
ExitFor
'假如名为'完成标志'的命名单元的值等于'完成',则退出循环,假如一开始就等于'完成',则只执行一次循环就退出

'IfSheets("传送参数").Range("A"&i).Text="完成"Then
ExitFor
'假如某列出现"完成"内容则退出循环
Nexti
EndSub

3:录制宏时调用“停止录制”工具栏
Sub录制宏时调用停止录制工具栏()
Application.CommandBars("StopRecording").Visible=True
EndSub
4:高级筛选5列不重复数据至指定表
Sub高级筛选5列不重复数据至Sheet2()
Sheets("Sheet2").Range("A1:E65536")=""'清除Sheet2的A:D列
Range("A1:E65536").AdvancedFilterAction:=xlFilterCopy,CopyToRange:=Sheet2.Range(_
"A1"),Unique:=True
Sheet2.Columns("A:E").SortKey1:=Sheet2.Range("A2"),Order1:=xlAscending,Header:=xlGuess,_
OrderCustom:=1,MatchCase:=False,Orientation:=xlTopToBottom,SortMethod_
:=xlPinYin
EndSub
5:双击单元执行宏(工作表代码)
PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)
IfRange("$A$1")="关闭"Then
ExitSub
SelectCaseTarget.Address
Case"$A$4"
Call宏1
Cancel=True
Case"$B$4"
Call宏2
Cancel=True
Case"$C$4"
Call宏3
Cancel=True
Case"$E$4"
Call宏4
Cancel=True
EndSelect
EndSub
6:双击指定区域单元执行宏(工作表代码)
PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)
IfRange("$A$1")="关闭"ThenExitSub
IfNotApplication.Intersect(Target,Range("A4:A9","C4:C9"))IsNothingThenCall打开隐藏表
EndSub
7:进入单元执行宏(工作表代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)'以单元格进入代替按钮对象调用宏
IfRange("$A$1")="关闭"ThenExitSub
SelectCaseTarget.Address
Case"$A$5"'单元地址(Target.Address),或命名单元名字(Target.Name)
Call宏1
Case"$B$5"
Call宏2
Case"$C$5"
Call宏3
EndSelect
EndSub
8:进入指定区域单元执行宏(工作表代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)
IfRange("$A$1")="关闭"ThenExitSub
IfNotApplication.Intersect(Target,Range("A4:A9","C4:C9"))IsNothingThenCall打开隐藏表
EndSub
9:在多个宏中依次循环执行一个(控件按钮代码)
PrivateSubCommandButton1_Click()
StaticRunMacroAsInteger
SelectCaseRunMacro
Case0
宏1
RunMacro=1
Case1
宏2
RunMacro=2
Case2
宏3
RunMacro=0
EndSelect
EndSub
10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
WithCommandButton1
If.Caption="保护工作表"Then
Call保护工作表
.Caption="取消工作表保护"
ExitSub
EndIf
If.Caption="取消工作表保护"Then
Call取消工作表保护
.Caption="保护工作表"
ExitSub
EndIf
EndWith
EndSub
11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
OptionExplicitPrivateSubCommandButton1_Click()
WithCommandButton1
If.Caption="宏1"Then
Call宏1
.Caption="宏2"
ExitSub
EndIf
If.Caption="宏2"Then
Call宏2
.Caption="宏3"
ExitSub
EndIf
If.Caption="宏3"Then
Call宏3
.Caption="宏1"
ExitSub
EndIf
EndWith
EndSub
12:根据A1单元文本隐藏/显示按钮(控件按钮代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)
IfRange("A1")>2Then
CommandButton1.Visible=1
Else
CommandButton1.Visible=0
EndIf
EndSub
PrivateSubCommandButton1_Click()
重排窗口
EndSub
13:当前单元返回按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
ActiveCell=CommandButton1.Caption
EndSub
14:当前单元内容返回到按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
CommandButton1.Caption=ActiveCell
EndSub
15:奇偶页分别打印
Sub奇偶页分别打印()
Dimi%,Ps%
Ps=ExecuteExcel4Macro("GET.DOCUMENT(50)")'总页数
MsgBox"现在打印奇数页,按确定开始."
Fori=1ToPsStep2
ActiveSheet.PrintOutfrom:=i,To:=i
Nexti
MsgBox"现在打印偶数页,按确定开始."
Fori=2ToPsStep2
ActiveSheet.PrintOutfrom:=i,To:=i
Nexti
EndSub
16:自动打印多工作表第一页
Sub自动打印多工作表第一页()
DimshAsInteger
Dimx
Dimy
Dimsy
Dimsyz
x=InputBox("请输入起始工作表名字:")
sy=InputBox("请输入结束工作表名字:")
y=Sheets(x).Index
syz=Sheets(sy).Index
Forsh=yTosyz
Sheets(sh).Select
Sheets(sh).PrintOutfrom:=1,To:=1
Nextsh
EndSub
17:查找A列文本循环插入分页符
Sub循环插入分页符()
'Selection=Workbooks("临时表").Sheets("表2").Range("A1")调用指定地址内容
DimiAsLong
DimtimesAsLong
times=Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"),"分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
Fori=1Totimes
Call插入分页符
Nexti
EndSub
Sub插入分页符()
Cells.Find(What:="分页",After:=ActiveCell,LookIn:=xlValues,LookAt:=_
xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext,MatchCase:=False)_
.Activate
ActiveWindow.SelectedSheets.HPageBreaks.AddBefore:=ActiveCell
EndSub
Sub取消原分页()
Cells.Select
ActiveSheet.ResetAllPageBreaks
EndSub
18:将A列最后数据行以上的所有B列图片大小调整为所在单元大小
Sub将A列最后数据行以上的所有B列图片大小调整为所在单元大小()
DimPicAsPicture,i&
i=[A65536].End(xlUp).Row
ForEachPicInSheet1.Pictures
IfNotApplication.Intersect(Pic.TopLeftCell,Range("B1:B"&i))IsNothingThen
Pic.Top=Pic.TopLeftCell.Top
Pic.Left=Pic.TopLeftCell.Left
Pic.Height=Pic.TopLeftCell.Height
Pic.Width=Pic.TopLeftCell.Width
EndIf
Next
EndSub
19:返回光标所在行数
Sub返回光标所在行数()
x=ActiveCell.Row
Range("A1")=x
EndSub
20:在A1返回当前选中单元格数量
Sub在A1返回当前选中单元格数量()
[A1]=Selection.Count
EndSub
21:返回当前工作簿中工作表数量
Sub返回当前工作簿中工作表数量()
t=Application.Sheets.Count
MsgBoxt
EndSub


93:B列录入数据时在A列返回记录时间(工作表代码)
PublicSubWorksheet_Change(ByValTargetAsRange)
IfTarget.Column=2Then
Target.Offset(,-1)=Now
EndIf
EndSub
94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)
PublicSubWorksheet_Change(ByValTargetAsRange)
IfNotApplication.Intersect(Target,[A1:A1000])IsNothingThen
IfTarget.Column=1Then
Target.Offset(,1)=Date
Target.Offset(,2)=Time
EndIf
EndIf
EndSub
PublicSubWorksheet_Change(ByValTargetAsRange)
IfNotApplication.Intersect(Target,[A1:A1000])IsNothingThen
IfTarget.Column=1Then
Target.Offset(,1)=Format(Now(),"yyyy-mm-dd")
Target.Offset(,2)=Format(Now(),"h:mm:ss")
EndIf
EndIf
EndSub
95:指定单元显示光标位置内容(工作表代码)
PrivateSubWorksheet_SelectionChange(ByValTAsRange)
Sheets(1).Range("A1")=Selection
EndSub
96:每编辑一个单元保存文件
PrivateSubWorksheet_Change(ByValTargetAsRange)
ThisWorkbook.Save
EndSub
97:指定允许编辑区域
Sub指定允许编辑区域()
ActiveSheet.ScrollArea="B8:G15"
EndSub
98:解除允许编辑区域限制
Sub解除允许编辑区域限制()
ActiveSheet.ScrollArea=""
EndSub
99:删除指定行
Sub删除指定行()
Workbooks("临时表").Sheets("表2").Range("5:5").Delete
EndSub
100:删除A列为指定内容的行
Sub删除A列为指定内容的行()
Dima,bAsInteger
a=Sheet1.[a65536].End(xlUp).Row
Forb=aTo2Step-1
IfCells(b,1).Value="删除"Then
Rows(b).Delete
EndIf
Next
EndSub

excel vba中,如果A列相同,则对应B列数据求和

  1. 思路是筛选出不重复数据,再对不重复数据分类求和,单条件求和用SUMIF就可。

  2. 录制筛选的宏、去重复的宏,再对宏编辑为自己的宏,删除录制的宏。

  3. Sub test()

  4. Dim ls As Integer

  5. Dim ll As Integer

  6. Dim ss As Integer

  7. ls = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row '统计A列行数

  8. Columns("A:A").Select

  9. Application.CutCopyMode = False

  10. ActiveSheet.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("XFD1"), Unique:=True '筛选A列不重复数据,放到最后一列

  11. ActiveSheet.Range("XFD:XFD").RemoveDuplicates Columns:=1, Header:=xlNo '去掉筛选出的重复数据,因筛选会自建表头(EXCEL2016版)

  12. ll = Application.WorksheetFunction.CountA(ActiveSheet.Range("XFD:XFD"))

  13. Do '对筛选数据分类求和并输出

  14. ss = ss + 1

  15. ActiveSheet.Range("C" & ss) = ActiveSheet.Range("XFD" & ss) & "=" & Application.WorksheetFunction.SumIf(ActiveSheet.Range("A:A"), ActiveSheet.Range("XFD" & ss), ActiveSheet.Range("B:B"))

  16. Loop Until ss = ll

  17. End Sub

    百度自动生成序号,VBA中是没有的。

vba: 求一个自定义事件的代码:在a列单元格中输入日期,就会合并 输入日期单元格前几个单元格

放在sheet 代码窗中 Private Sub Worksheet_Change(ByVal Target As Range) Application.DisplayAlerts = False If Target.Column = 1 And Target.Row > 1 And IsDate(Target) Then Range("A1:A" & Target.Row - 1).Merge End If Application.DisplayAlerts = True End Sub

excel vba,如果A列相同,则对应b列数据求和。

参考: Sub SumCalculation() Dim FirstRow As Long, LastRow As Long Dim MyCpt As Long Dim F As Range Dim I As Long Dim MyFormula As String Application.ScreenUpdating = False FirstRow = 2 LastRow = Cells(Rows.Count, "A").End(xlUp).Row Range(Cells(FirstRow, "B"), Cells(LastRow, "B")).ClearContents For I =

excel,sumifs同行多条件判断求和。 求vba代码,假设有三列判断条件区域a,b,c。

如果数据量很小,可以在VBA里面调用工作表函数WorksheetFunction.SumIfs,使用方法基本上与工作表上的SUMIFS相同,只是注意参数的表达方法,我相信你能写出这个语句。

标签:MicrosoftOffice MicrosoftExcel 信息技术 vba excel

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18