Excel精英培训网

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

[已解决]请教关于Freefile函数中的一个问题

[复制链接]
发表于 2011-12-26 13:38 | 显示全部楼层 |阅读模式
我这里有一段关于input函数的代码,用Freefile生成没有使用的文件号,总共有4个,t1,t2,t3,t4。但是我验证是发现t1=t2=t3=1, t4=2,这是为什么, 不是要生成未使用的文件号吗?怎么会有重复的?

Sub test()
        If Dir("C:\temptemp", vbDirectory) = "" Then
           MkDir ("C:\temptemp")
           Dim t2 As Long
           t2 = FreeFile
            
           Open "C:\temptemp\transfer.txt" For Append As #t2
           Print #t2, "hello"
           Close #t2
            
           Dim t1     As Long
           t1 = FreeFile
         
           Open "C:\temptemp\temp.txt" For Append As #t1
           Print #t1, "<collection type=material >"
           Print #t1, "  <group >"
           Close #t1
         
           Dim temp As String
           Dim t3 As Long
           t3 = FreeFile
           
           Open "c:\temptemp\transfer.txt" For Input As #t3
            
          Dim t4 As Long
          t4 = FreeFile
         
          Open "c:\temptemp\temp.txt" For Append As #t4
          MsgBox t1
          MsgBox t2
          MsgBox t3
          MsgBox t4
          Close #t3
          Close #t4
        End If
End Sub
最佳答案
2011-12-26 14:00
问题在于你生成文件后就关闭了,所以FreeFile又从1开始,而t3生成文件后未关闭,接下来FreeFile就等于2,若再创建则会等于3........
发表于 2011-12-26 14:00 | 显示全部楼层    本楼为最佳答案   
问题在于你生成文件后就关闭了,所以FreeFile又从1开始,而t3生成文件后未关闭,接下来FreeFile就等于2,若再创建则会等于3........
回复

使用道具 举报

 楼主| 发表于 2011-12-26 14:03 | 显示全部楼层
zjdh 发表于 2011-12-26 14:00
问题在于你生成文件后就关闭了,所以FreeFile又从1开始,而t3生成文件后未关闭,接下来FreeFile就等于2,若 ...

哦,没有注意到这个问题,谢谢!
回复

使用道具 举报

发表于 2011-12-26 14:05 | 显示全部楼层
你逐条运行以下语句,对比注释掉关闭文件语句时的FileNumber值就能理解了:
Sub AAA()
Dim MyIndex, FileNumber
For MyIndex = 1 To 5
    FileNumber = FreeFile
    Open "TEST" & MyIndex For Output As #FileNumber
    Write #FileNumber, "This is a sample."
    Close #FileNumber    ' 关闭文件。
Next MyIndex
End Sub
回复

使用道具 举报

发表于 2011-12-26 15:25 | 显示全部楼层
你们都是VBA高手呀,这回报了个名参加兰版的课,希望以后能和你们一样
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 01:37 , Processed in 0.385170 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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