ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2260|回复: 8

[求助]WORD中使用VBA将附件中8T.XLS生成8T.TXT

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-14 15:47 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请问如何在WORD中使用VBA将附件中8T.XLS生成8T.TXT,即取EXCEL中B、E、H列一定范围中的数据,其它按固定内容生成一文本文件? nqqSfftI.rar (4.49 KB, 下载次数: 12)
[此贴子已经被作者于2006-4-14 15:52:21编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-14 19:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

'仅测试于windows2002 + office2003

'勾选工具、引用Miscosoft Excel 11.0 Object libaray
Sub 孤独一叶()
'代码主要部分是原来老大的
Dim MyDialog As FileDialog, vrtSelectedItem As Variant
Dim aexcel As Excel.Application, axls As Excel.Workbook
Dim ast As String
On Error GoTo hander:
'On Error Resume Next
'定义一个文件夹选取对话框
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
With MyDialog
.Filters.Clear '清除所有文件筛选器中的项目
.Filters.Add "所有 xls文件", "*.xls", 1 '增加筛选器的项目为所有WORD文件
.AllowMultiSelect = False '不允许多项选择
If .Show = -1 Then '确定
Set aexcel = CreateObject("Excel.Application")

Application.ScreenUpdating = False
For Each vrtSelectedItem In .SelectedItems '在所有选取项目中循环
ast = vrtSelectedItem
aexcel.Visible = False
Set axls = aexcel.Workbooks.Open(vrtSelectedItem)
With axls
Dim bb As Long
Dim bbvr1, eevr1, hhvr1
bb = .Worksheets("8t").Range("b65536").End(xlUp).Row
Set bbvr1 = .Worksheets("8t").Range("b5:b" & bb)
Set eevr1 = .Worksheets("8t").Range("e5:e" & bb)
Set hhvr1 = .Worksheets("8t").Range("h5:h" & bb)
End With

Next vrtSelectedItem
End If

End With
Application.ScreenUpdating = True
Dim astring, a As Long
For a = 1 To bb - 5+1
'ui03001<<TAB>>8t<<F2>>0<<F8>><<enter>>
'<<SECS12>>
astring = astring & bbvr1(a) & "<<TAB>>" & eevr1(a) & "<<F2>>" & hhvr1(a) & "<<F8>><<enter>>" & Chr(13) & "<<SECS12>>" & Chr(13)
Next
Dim fso, MyFile
ast = Replace(ast, "xls", "txt")
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(ast, True)
MyFile.Write (astring)
MyFile.Close
aexcel.Quit '释放变量
MsgBox "已完成,请核对!"
Exit Sub
hander:
aexcel.Quit '释放变量
MsgBox "请再检查一次,是否是我错了?:)"
End Sub

[此贴子已经被作者于2006-4-14 20:01:50编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-15 09:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-4-15 09:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

对不起,这个在Office2000及以下是不行的。

至少要Office2002

包歉。因为他没有msoFileDialogFilePicker对象

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-18 08:41 | 显示全部楼层
konggs,能否提供windows98 + office2000下的VBA程序,在excel中按要求写一个文本文件也行

TA的精华主题

TA的得分主题

发表于 2006-4-18 19:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-4-19 07:25 | 显示全部楼层

很难做到。

我的系统不是这样的。在我的范围找不到这样的系统。

你不能叫我去为你装一个这样的系统吧?

TA的精华主题

TA的得分主题

发表于 2006-4-20 07:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

把filedialog对象去掉,如果是需要使用路径的话,用INPUT对话框,然后使用DIR进行验证,当然也可以使用通用对话框控件,但有些机器也不一定支持。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-20 08:27 | 显示全部楼层
守柔,能否提供windows98 + office2000下的详细VBA程序,谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 11:35 , Processed in 0.035564 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表