某天(大要是实数据1个月前),我在贴吧看到有人提出如许的战之指定中题目,以下图:
TA想要把图中表单“总表”内的分类数据,根据B列“点号”(如:DC16)停止分类,写入每个点号的表单开yun体育官网进口登录数据写入一张sheet中,sheet以点号定名。实数据云开手机版app结果以下图:
代码以下:
Sub 提取分类数据()
Application.ScreenUpdating = False '封闭屏幕革新
Dim sheet_arr '界说一个数组,战之指定顶用于寄存新增的分类一切表单称号
sheet_arr = Array('DC16')
use_row = Sheet3.Cells(Sheet3.Rows.Count, 2).End(xlUp).Row 'B列最初一行行数
i_row = 2 '肇端行
Do While i_row < use_row '轮回到总表最初
'肯定行将要复制的地区
If Sheet3.Range('B' & i_row).Value = '点号' Then
head_row = i_row '把点号地点的单位格·行数,赋值给head_row
i_row = i_row + 2 '若是值是点号,则跳过点号地点的写入归并地区
End If
sheet_name = Split(Sheet3.Range('B' & i_row).Value, '-')(0) '切割点号,作为sheet称号
'鉴定表单是表单否已存在,不存在则新增
arr_count = UBound(sheet_arr) - LBound(sheet_arr) + 1 '数组个数
'For Each na In Worksheets '遍历一切表单
'If na.Name = sheet_name Then
'Exit For '若是表单已存在,实数据则跳出for轮回
'End If
For a = LBound(sheet_arr) To arr_count - 1 '遍历表单名单数组
If sheet_arr(a) = sheet_name Then
Exit For '若是表单已存在,战之指定中则跳出for轮回
ElseIf a = arr_count - 1 And sheet_arr(a) <> sheet_name Then
Worksheets.Add.Name = sheet_name '表单不存在,分类云开全站app官网登录则新增一个表单
ReDim Preserve sheet_arr(LBound(sheet_arr) To arr_count) '从头界说数组巨细
sheet_arr(arr_count) = sheet_name '把新增的写入sheet称号存储到数组中
End If
Next
'按天来复制,先鉴定该天的表单数据是不是为空
For i = 1 To 5 'C列、E列、G列、I列、K列
If Sheet3.Cells(i_row, 2 * i + 1).Value <> '' Then '若是不为空,则在对应的sheet记实上去
w_row = Sheets(sheet_name).Cells(Sheets(sheet_name).Rows.Count, 3).End(xlUp).Row - 4 'B列,最初一个日期数据块的肇端单位格
If w_row < 0 Then '小于0代表该张表单是第一次写入数据
'在每张sheet中粘贴表头
Sheet3.Range('B1').Resize(1, 11).Copy
Sheets(sheet_name).Range('B1').PasteSpecial
Union(Sheet3.Cells(head_row, 2).Resize(2, 1), Sheet3.Cells(i_row, 2).Resize(3, 1)).Copy '点号标签地点地区
Sheets(sheet_name).Cells(2, 2).PasteSpecial '粘贴
w_row = 2
End If
'MsgBox w_row
w_col = Sheets(sheet_name).Cells(w_row, Sheets(sheet_name).Columns.Count).End(xlToLeft).Column + 2 '该行利用列数+1
If w_col = 4 Then
w_col = 3
End If
'cells(w_row,w_col)所定位的实在是下一个块行将写入的单位格
'由于每行只写个5个日期,以是先鉴定,该行是不是已排了5天
If w_col = 13 Then '若是已排满,则另起一行
w_row = w_row + 5
w_col = 3
'另起一行,先把点号标签写在B列
Sheets(sheet_name).Cells(w_row - 5, 2).Resize(5, 1).Copy '点号标签地点地区
Sheets(sheet_name).Cells(w_row, 2).PasteSpecial '粘贴
End If
'粘贴的数据分2处:1处这天期地点的标签地区;2处是数据地点地区
Union(Sheet3.Cells(head_row, 2 * i + 1).Resize(2, 2), Sheet3.Cells(i_row, 2 * i + 1).Resize(3, 2)).Copy
'经由过程union方式结合日期标签地点地区and数值地点地区,并复制
Sheets(sheet_name).Cells(w_row, w_col).PasteSpecial '粘贴
End If
Next
i_row = i_row + 3
Loop
Application.ScreenUpdating = True '开启屏幕革新
End Sub
小常识
Application.ScreenUpdating = False
封闭屏幕革新,进步运转速率。
union方式
将多个单位格地区结合起来,构成一个新的单位格地区;
跨地区复制单位格时须要用到;
Range.PasteSpecial 方式
单位格挑选性粘贴;
range工具不paste方式;
比来高低班途中看的是口语版《聊斋志异》,快看完了;
午时看的是《战国策》下册,还剩下150张,天天看7张,约莫还须要21天看完。
END
停止时候:2023-12-29 00:47:00
礼包内容:潮水纤维*50,金币*1
停止时候:2023-12-29 00:47:00
礼包内容:瓶盖*1000
停止时候:2023-12-29 00:47:00
礼包内容:瓶盖*600,潮水纤维*20
100万元存1天得1500元!银行揽储压力加大,资金经纪开辟重生意
日期 2023-12-29 00:03马斯克回应把持火箭发射市场:SpaceX 的任务是让性命多行星化
日期 2023-12-28 23:41台军方正式废除“公民兵役”,岛内网民:实在是增添征兵一个表现
日期 2023-12-28 22:4541279MB
检查73MB
检查954MB
检查2MB
检查8337MB
检查795MB
检查8MB
检查5MB
检查
网友批评
64 m15f1r3
渣机党劝退,出来卡死。看来我不配。
2023-12-28 来自湖南 保举
35 m15f1r3
最新发明,点两下能够打消赞,不信你尝尝
2023-12-28 来自湖南 保举
4 喝醉的鱼_2282
渣滓软件,外面的工具都要钱
2023-12-28 来自湖南 保举
59253 哈吉咩
渣滓软件,外面的工具都要钱
2023-12-28 来自湖南 保举
17777 ¥做溫暖的女孩^.^
夜幕来临,小区转达室的刘大爷冷静谛视着墙上的挂钟,思考很久,又点上一根烟,终究果断地拉掉了小区电闸。那一晚他为小区业主们挽回了几万万元的财产丧失。那一天是公元2014年11月11日。
2023-12-28 来自湖南 保举