ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何将excel中的多个选定区域原样输出到文本文件?

如何将excel中的多个选定区域原样输出到文本文件?

作者:绿色风 分类: 时间:2022-08-17 浏览:172
楼主
herelazy
Q:如何将excel中的多个选定区域原样输出到文本文件?


 

A:
  1. Sub test2()    '子程序 test2()
  2. Dim mArea As Range, Rng As Range, RS&, CS&, RE&, CE&, Str$    '定义变量 mArea 为 单元格区域,Rng 为 单元格区域,RS&,CS&,RE&,CE&,Str$
  3. If TypeName(Selection) = "Range" Then    '如果 TypeName(被选项)="Range" 则执行
  4.         RS = Rows.Count    'RS=行数值
  5.         CS = Columns.Count    'CS=列数值
  6.         RE = 0    'RE=0
  7.         CE = 0    'CE=0
  8.         Str = ""    'Str=空值
  9.         With Selection    '工作于被选项
  10.                 For Each mArea In .Areas    '设定变量范围为每一个 mArea位于<With对象>的范围
  11.                         With mArea    '工作于 mArea
  12.                                 If .Row < RS Then RS = .Row    '如果 <With对象>的行标<RS 则执行 RS=<With对象>的行标
  13.                                 If .Column < CS Then CS = .Column    '如果 <With对象>的列标<CS 则执行 CS=<With对象>的列标
  14.                                 If .Row + .Rows.Count - 1 > RE Then RE = .Row + .Rows.Count - 1    '如果 <With对象>的行标+<With对象>的行数值-1>RE 则执行 RE=<With对象>的行标+<With对象>的行数值-1
  15.                                 If .Column + .Columns.Count - 1 > CE Then CE = .Column + .Columns.Count - 1    '如果 <With对象>的列标+<With对象>的列数值-1>CE 则执行 CE=<With对象>的列标+<With对象>的列数值-1
  16.                         End With    'With语句结束
  17.                 Next mArea    '下一个 mArea
  18.                 For Each Rng In .Parent.Range(.Parent.Cells(RS, CS), .Parent.Cells(RE, CE))    '设定变量范围为每一个Rng位于<With对象>的Parent.Range(<With对象>的Parent.Cells(RS,CS),<With对象>的Parent.Cells(RE,CE))
  19.                         If Not Intersect(Rng, Selection) Is Nothing Then Str = Str & Rng.Text    '如果  非 <单元格交集>(Rng,被选项) 是 空值 则执行 Str=Str &  Rng的文本
  20.                         If Rng.Column < CE Then    '如果  Rng的列标<CE 则执行
  21.                                 Str = Str & vbTab    'Str=Str & Tab键
  22.                         Else    '另外
  23.                                 Str = Str & vbCrLf    'Str=Str & 回车换行符
  24.                         End If    'If判断过程结束
  25.                 Next Rng    '下一个 Rng
  26.         End With    'With语句结束
  27.         Open ThisWorkbook.Path & "\" & Format(Now, "yyyymmddhhmmss.txt") For Output As #1    '打开文件  当前工作簿的路径 & "\" & Format(当前时间,"yyyymmddhhmmss.txt")以Output 为 #1
  28.         Print #1, Str    '输出显示 #1,Str
  29.         Close #1    '关闭 #1
  30. End If    'If判断过程结束
  31. End Sub    '子程序结束
示例文件:
将excel中的多个选定区域原样输出到文本文件.rar



该帖已经同步到 herelazy的微博
2楼
JOYARK1958
謝謝提供學習下載中
3楼
亡者天下
过来学习一下

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap