用VBA的方法从EXCEL中筛选数据导出带分隔符的TXT文件?
代码如下,但无论怎么改生成的文本文件里每行的头尾都有"|"1|1|2013/3/3|19:01|甲|3|3|2013/3/5|19:03|丙|而我想生成的是头尾没有分隔符...
代码如下,但无论怎么改生成的文本文件里每行的头尾都有"|"1|1|2013/3/3|19:01|甲|3|3|2013/3/5|19:03|丙|而我想生成的是头尾没有分隔符的文档,例如:1|1|2013/3/3|19:01|甲3|3|2013/3/5|19:03|丙请问应该怎么修改代码?Sub Macro1() Dim i&, j&, s$ With Sheet2 For i = 1 To .[A65536].End(xlUp).Row If .Cells(i, 1) = "Y" Then For j = 2 To 6 s = s & .Cells(i, j).Text & "|" Next s = s & vbCrLf End If Next End With Open ThisWorkbook.Path & "\a.txt" For Output As #1 Print #1, s Close #1
展开
2019-10-26 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
某EXCEL文件中有两个(其实是多个,但需要用的就两个)如下图:
同学的领导要求,根据选中的名称显示出这个单位的所有手机号码(为保护隐私用*号替换了)及相关信息。说白了就是表(正常 集团 (2))里的数据太多,他想要根据关面列出的名查看其具体包含哪些号等信息。
解决方案:
先将“正常集团(2)表设置筛选。
然后在10个**的表的SHEET选项卡上点击右键-》查看代码,写下如下代码
代码如下:
具体代码什么意思就不用我解释了吧!
由于后来她又改变主意了,不需要另存成文件了,所以另存文件的部分被我注释掉了!需要用的朋友把注释去掉就可以了!另存储路径需要先创建。我当时没有想那么多,而且他也不需要那么复杂就没有包含创建目录以及判断文件是否存在一类的。如果有这方面的需求可以根据情况自己扩展一下就行了!
----------------
补充:
在写代码时一直想找到多行注释按钮,但一直也没有找到。VBA用的也不多,在编辑器中类似/* */或{ }这样的方法行不行。对此耿耿于怀,刚才在网上查找了一下。终于找到答案了,原来自己太大意了。
在工具栏上右键点击-》编辑 会弹出一个工具栏。其中就包括注释及取消注释的按钮。
有人一直说看不到,不知道是看不到代码还是图片。如是代码,请在代码那行上有个加号,点开即可:下边把代码附上!
[code=vb]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Calc (Target.Text)
End If
End Sub
Function Calc(ByVal SelectName As String)
Sheets(3).Select
ActiveSheet.Range("$B$1:$B$60448").AutoFilter Field:=1, Criteria1:=SelectName
'Sheets(3).Cells.Select
'Application.CutCopyMode = False
'Selection.Copy
'Sheets.Add After:=Sheets(Sheets.Count)
'Sheets(Sheets.Count).Select
'Cells.Select
'ActiveSheet.Paste
'Sheets(Sheets.Count).Name = SelectName
'Sheets(2).Select
'Range("A2").Select
'Workbooks.Add
'ActiveSheet.Paste
'Application.CutCopyMode = False
'ActiveWorkbook.SaveAs Filename:= _
' "D:/DHList/" + SelectName + ".xls", FileFormat:= _
' xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
' , CreateBackup:=False
'ActiveWindow.Close
' Windows("政企全网VPN用户23日.xls").Activate
' Sheets(2).Select
' Range("B1").Select
End Function
[/code]
同学的领导要求,根据选中的名称显示出这个单位的所有手机号码(为保护隐私用*号替换了)及相关信息。说白了就是表(正常 集团 (2))里的数据太多,他想要根据关面列出的名查看其具体包含哪些号等信息。
解决方案:
先将“正常集团(2)表设置筛选。
然后在10个**的表的SHEET选项卡上点击右键-》查看代码,写下如下代码
代码如下:
具体代码什么意思就不用我解释了吧!
由于后来她又改变主意了,不需要另存成文件了,所以另存文件的部分被我注释掉了!需要用的朋友把注释去掉就可以了!另存储路径需要先创建。我当时没有想那么多,而且他也不需要那么复杂就没有包含创建目录以及判断文件是否存在一类的。如果有这方面的需求可以根据情况自己扩展一下就行了!
----------------
补充:
在写代码时一直想找到多行注释按钮,但一直也没有找到。VBA用的也不多,在编辑器中类似/* */或{ }这样的方法行不行。对此耿耿于怀,刚才在网上查找了一下。终于找到答案了,原来自己太大意了。
在工具栏上右键点击-》编辑 会弹出一个工具栏。其中就包括注释及取消注释的按钮。
有人一直说看不到,不知道是看不到代码还是图片。如是代码,请在代码那行上有个加号,点开即可:下边把代码附上!
[code=vb]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Calc (Target.Text)
End If
End Sub
Function Calc(ByVal SelectName As String)
Sheets(3).Select
ActiveSheet.Range("$B$1:$B$60448").AutoFilter Field:=1, Criteria1:=SelectName
'Sheets(3).Cells.Select
'Application.CutCopyMode = False
'Selection.Copy
'Sheets.Add After:=Sheets(Sheets.Count)
'Sheets(Sheets.Count).Select
'Cells.Select
'ActiveSheet.Paste
'Sheets(Sheets.Count).Name = SelectName
'Sheets(2).Select
'Range("A2").Select
'Workbooks.Add
'ActiveSheet.Paste
'Application.CutCopyMode = False
'ActiveWorkbook.SaveAs Filename:= _
' "D:/DHList/" + SelectName + ".xls", FileFormat:= _
' xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
' , CreateBackup:=False
'ActiveWindow.Close
' Windows("政企全网VPN用户23日.xls").Activate
' Sheets(2).Select
' Range("B1").Select
End Function
[/code]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实你的问题很简单,希望你稍微仔细点,但愿能成功。
把你的代码中下面一段
For j = 2 To 6
s = s & .Cells(i, j).Text & "|"
Next
s = s & vbCrLf
替换为:
s = s & Cells(i,2) & "|" & Cells(i,3) & "|" & Cells(i,4) & "|" & Cells(i,5) & "|" & Cells(i,6) & vbCrLf
注意是多行换位一行,注意符号要用英文半角
把你的代码中下面一段
For j = 2 To 6
s = s & .Cells(i, j).Text & "|"
Next
s = s & vbCrLf
替换为:
s = s & Cells(i,2) & "|" & Cells(i,3) & "|" & Cells(i,4) & "|" & Cells(i,5) & "|" & Cells(i,6) & vbCrLf
注意是多行换位一行,注意符号要用英文半角
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询