EXCEL VBA 的代码问题?
如果表"数据"中C9不为空,就在其它表格中的BG1返回1;如果表"数据"中D9不为空,就在其它表格中的BH1返回1;一直到如果表"数据"中Z9不为空,就在其它表格中的CD...
如果表"数据"中C9不为空,就在其它表格中的BG1返回1;
如果表"数据"中D9不为空,就在其它表格中的BH1返回1;
一直到如果表"数据"中Z9不为空,就在其它表格中的CD1返回1;
请问这个循环要怎么写啊? 展开
如果表"数据"中D9不为空,就在其它表格中的BH1返回1;
一直到如果表"数据"中Z9不为空,就在其它表格中的CD1返回1;
请问这个循环要怎么写啊? 展开
3个回答
展开全部
代码大致功能:
1、去掉C列中的逗号
2、清空L至R列的数据(从第二行开始到R列的最后有数据的行)
3、将B列的数据(第二行开始)利用字典去重放入L列(第二行开始)
4、设置M2公式=VLOOKUP(L2,B:C,2,0),并向下填充
5、设置N2公式=VALUE(RIGHT(VLOOKUP(L2,B:D,3,0),6)),并向下填充
6、设置O2公式=SUMIFS(C[-8],C[-13],RC[-3]),并向下填充
7、设置P2公式=COUNTIF($B:$B,$L2)+COUNTIF(存款总次数!$A:$A,IF(LEN(N2)=5,VALUE(z000000&N2),VALUE(z00000&N2))),并向下填充
8、设置Q2公式=IFERROR(VLOOKUP(M2,代码!A:B,2,0),""),并向下填充
9、设置R2公式=COUNTIF(注册!$B:$B,L2),并向下填充
语句:
1、Range("R65536").End(xlUp).Row 表示R列最后有数据的行
2、Set d = CreateObject("Scripting.Dictionary") 字典对象,这里主要是应用其key的唯一行来去重
3、Range("L2").Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys) resize扩充,这里就是将L2变成 L2:L(d.count+1) ,比如 d.count=10,那么这里就是L2:L11,也就是向下扩充d.count-1行,向后扩充1-1=0列,然后将数组数据放入其中
4、Range("M2").Select 表示 选中M2单元格
5、ActiveCell.Formula ActiveCell 当前选中的单元格 Formula 就是公式
6、Selection.AutoFill Destination:=Range("M2:M" & Range("L65536").End(xlUp).Row) selection 表示选中的单元格 ,autofill就是自动填充,Destination 表示填充的位置,这里就是M列从第二行开始至最后有数据的行
1、去掉C列中的逗号
2、清空L至R列的数据(从第二行开始到R列的最后有数据的行)
3、将B列的数据(第二行开始)利用字典去重放入L列(第二行开始)
4、设置M2公式=VLOOKUP(L2,B:C,2,0),并向下填充
5、设置N2公式=VALUE(RIGHT(VLOOKUP(L2,B:D,3,0),6)),并向下填充
6、设置O2公式=SUMIFS(C[-8],C[-13],RC[-3]),并向下填充
7、设置P2公式=COUNTIF($B:$B,$L2)+COUNTIF(存款总次数!$A:$A,IF(LEN(N2)=5,VALUE(z000000&N2),VALUE(z00000&N2))),并向下填充
8、设置Q2公式=IFERROR(VLOOKUP(M2,代码!A:B,2,0),""),并向下填充
9、设置R2公式=COUNTIF(注册!$B:$B,L2),并向下填充
语句:
1、Range("R65536").End(xlUp).Row 表示R列最后有数据的行
2、Set d = CreateObject("Scripting.Dictionary") 字典对象,这里主要是应用其key的唯一行来去重
3、Range("L2").Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys) resize扩充,这里就是将L2变成 L2:L(d.count+1) ,比如 d.count=10,那么这里就是L2:L11,也就是向下扩充d.count-1行,向后扩充1-1=0列,然后将数组数据放入其中
4、Range("M2").Select 表示 选中M2单元格
5、ActiveCell.Formula ActiveCell 当前选中的单元格 Formula 就是公式
6、Selection.AutoFill Destination:=Range("M2:M" & Range("L65536").End(xlUp).Row) selection 表示选中的单元格 ,autofill就是自动填充,Destination 表示填充的位置,这里就是M列从第二行开始至最后有数据的行
追问
你粘贴这些累不累
展开全部
c9:Z9
共24个
BG1:CD,也是24个
你分表,共21个,怎么循环?
共24个
BG1:CD,也是24个
你分表,共21个,怎么循环?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub XX()
Dim i%
For i = 3 To [z1].Column
If Worksheets("数据").Cells(9, i) <> "" Then
Worksheets("其他").Cells(1, [BG1].Column + i - 3) = 1
End If
Next i
End Sub
Dim i%
For i = 3 To [z1].Column
If Worksheets("数据").Cells(9, i) <> "" Then
Worksheets("其他").Cells(1, [BG1].Column + i - 3) = 1
End If
Next i
End Sub
更多追问追答
追问
谢谢老师,我忘记上图了,现在修改不成功.
其它工作表就是有 "数据2",外加 "1","2"......."20",一共21个工作表.
这个工作表帮忙写个循环
追答
呃,是什么意思,没搞懂,是如果C9不为空,就将C9的内容写入你说的这些全部工作表中的BG1吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询