Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2658|回复: 9

[已解决]请教导出问题

[复制链接]
发表于 2015-1-25 18:38 | 显示全部楼层 |阅读模式
本帖最后由 yvll 于 2015-1-28 20:39 编辑

请教导出问题,谢谢!
请教导出问题.rar (7.46 KB, 下载次数: 14)
 楼主| 发表于 2015-1-26 16:52 | 显示全部楼层
回复

使用道具 举报

发表于 2015-1-26 17:29 | 显示全部楼层
yvll 发表于 2015-1-26 16:52
请求帮助

取少量数据,模拟下结果,让别人好理解,以便更好解决问题啊
回复

使用道具 举报

 楼主| 发表于 2015-1-27 15:59 | 显示全部楼层
原附件写的不够清楚 ,再重新上传一个。
请教导出问题 (1).rar (7.48 KB, 下载次数: 4)
回复

使用道具 举报

发表于 2015-1-27 17:23 | 显示全部楼层    本楼为最佳答案   
  1. Sub t()
  2.     Dim arr, i&, j&, s, m%
  3.     Dim myPath, fs, f
  4.     myPath = ThisWorkbook.Path & ""
  5.     arr = Range("X2:AE33")
  6.     Set fs = CreateObject("Scripting.FileSystemObject")

  7.     For i = 1 To UBound(arr)
  8.         If fs.FolderExists(myPath & i) Then  '文件夹是否存在
  9.             fs.DeleteFolder (myPath & i)     '删除文件夹
  10.         End If
  11.     Next
  12.     For i = 1 To UBound(arr)
  13.         m = 0
  14.         For j = 1 To UBound(arr, 2)
  15.             If Not IsError(arr(i, j)) Then   '判断是否为错误值
  16.             s = Trim(arr(i, j))
  17.                 If IsNumeric(Left(s, 1)) And Len(s) > 0 Then '判断是否为数值且不为空
  18.                     m = m + 1                        '计算
  19.                     If m = 1 Then fs.CreateFolder (myPath & i)       '创建文件夹
  20.                     Set f = fs.CreateTextfile(myPath & i & "" & m & ".txt", True) '创建文本
  21.                     f.write s      '写入
  22.                     f.Close        '关闭
  23.                 End If
  24.             End If
  25.         Next
  26.     Next
  27.     MsgBox "完成!!"
  28. End Sub
复制代码
附件:
请教导出问题.zip (15.33 KB, 下载次数: 11)
回复

使用道具 举报

 楼主| 发表于 2015-1-27 17:38 | 显示全部楼层
芐雨 发表于 2015-1-27 17:23
附件:

太好了,方方面面都考虑到了,太专业了,代码写的漂亮。非常非常感谢您,等回家放在实际的程序上试试再来。
回复

使用道具 举报

 楼主| 发表于 2015-1-28 20:38 | 显示全部楼层
芐雨 发表于 2015-1-27 17:23
附件:

刚到家,在实际程序上应用的非常好,再次感谢您!
回复

使用道具 举报

 楼主| 发表于 2015-2-2 16:21 | 显示全部楼层
芐雨 发表于 2015-1-27 17:23
附件:

您好,能否帮助我将导出的文本文件内的数字由横排改为1列竖排,每个数字后面不要有空格。例如
01
02
03
。。
谢谢您!
回复

使用道具 举报

发表于 2015-2-2 16:49 | 显示全部楼层
yvll 发表于 2015-2-2 16:21
您好,能否帮助我将导出的文本文件内的数字由横排改为1列竖排,每个数字后面不要有空格。例如
01
02

Sub t()
    Dim arr, i&, j&, s$, m%
    Dim myPath$, fs, f
    myPath = ThisWorkbook.Path & "\"
    arr = Range("X2:AE33")
    Set fs = CreateObject("Scripting.FileSystemObject")
    For i = 1 To UBound(arr)
        If fs.FolderExists(myPath & i) Then  '文件夹是否存在
            fs.DeleteFolder (myPath & i)     '删除文件夹
        End If
    Next
    For i = 1 To UBound(arr)
        m = 0
        For j = 1 To UBound(arr, 2)
            If Not IsError(arr(i, j)) Then   '判断是否为错误值
                s = Replace(Trim(arr(i, j)), " ", vbCrLf)
                If IsNumeric(Left(s, 1)) And Len(s) > 0 Then    '判断是否为数值且不为空
                    m = m + 1                        '计算
                    If m = 1 Then fs.CreateFolder (myPath & i)       '创建文件夹
                    Set f = fs.CreateTextfile(myPath & i & "\" & m & ".txt", True)    '创建文本
                    f.write s    '写入
                    f.Close        '关闭
                End If
            End If
        Next
    Next
    MsgBox "完成!!"
End Sub
回复

使用道具 举报

 楼主| 发表于 2015-2-2 22:45 | 显示全部楼层
芐雨 发表于 2015-2-2 16:49
Sub t()
    Dim arr, i&, j&, s$, m%
    Dim myPath$, fs, f

太好了,万分感谢您!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 02:25 , Processed in 0.334321 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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