作者:乔山办公网日期:
返回目录:excel表格制作
根据楼主需求,可以使用我自己用的拆分sheet代码:
Public Sub 拆分sheet()
Dim tj As String, flag As Boolean
lm = InputBox("请输入拆分依据列名:")
lh = Asc(UCase(lm)) - 64
i = ActiveSheet.Index
Set zst = Sheets(i)
zst.AutoFilterMode = False
For Each cel In zst.Range(zst.Cells(2, lh), zst.Cells(zst.UsedRange.Rows.Count, lh))
For Each st In Sheets
If st.Name = cel.Value Then flag = True
Next
If (tj = "" Or cel.Value <> tj) And cel.Value <> "" And flag = False And IsError(Application.Search("汇总", cel.Value)) And IsError(Application.Search("总计", cel.Value)) Then
tj = cel.Value
zst.Range(lm & ":" & lm).AutoFilter Field:=1, Criteria1:="*" & tj & "*"
zst.Activate
zst.Range("A1").Select
ActiveCell.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
ActiveSheet.Name = tj
End If
flag = False
Next
zst.Range("A:A").AutoFilter
zst.Activate
zst.Range("A1").Select
End Sub
将以上代码放到模块中,运行,输入要依据此列拆分表格的列名,例如楼主要根据B列的单位7a686964616fe4b893e5b19e331拆分,就输入B,然后就会自动拆分了
这个需要看具体流水编号格式
一种考虑结合row公式
另一种考虑使用vba
具体要看楼主的需求了
简单点,可以把这些流水号分为3列数据,CN*A3为一列zd;16进制序号为一列;A1为一列。16进制序号可用函数转换+文本转换来实现。方法就这样,具体自己偿试吧。函数自己查查16进制转换,另外单回元格式属性设置一下。还可以增加一列文本列,用文本转换函数把三列合并。打印页面则可用隐答藏列方式实现只显示合并那列。复杂点就要用宏了,这个在EXCEL里就没必要了。
1、在需要输入流水号的单元格中使用公式:
=IF(B1<>"",ROW(A1),"")
下拉复制公式。
2、流水号的格式是什么格式?假设为字母加8位数字,选中该列,右击,设置单元格格式,自定义:"A"00000000。