我正在运行下面的代码并且它运行良好 - 它使用Sheet1上的单元格B1中指定的名称创建我的文件,但是当我将其他名称(示例FileNames)命名为时,它会给我一个错误。
Sub OpenFiles()
Dim fso As Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Set fso = New Scripting.FileSystemObject
Set ts = fso.CreateTextFile("C:\Users\Betty_smith\Desktop\VBA\" &
Replace(Sheet1.Range("B1").Text, ".txt", "") & ".txt", True)
End Sub
这是给我一个错误的代码:
Sub OpenFiles()
Dim fso As Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Set fso = New Scripting.FileSystemObject
Set ts = fso.CreateTextFile("C:\Users\iwona_ring\Desktop\VBA\" &
Replace(Names.Range("B1").Text, ".txt", "") & ".txt", True)
End Sub
有人可以解释原因吗?
答案 0 :(得分:0)
Replace(Sheet1.Range("B1").Text, ".txt", "") & ".txt", True)
看起来您正在使用Sheet的代号(显示在VB编辑器的Project explorer窗口中;最初它与工作表选项卡名称相同,但在更改选项卡名称时不会更改)
更新至:
Replace(Sheets("Sheet1").Range("B1").Text, ".txt", "") & ".txt", True)
然后将“Sheet1”更新为新的工作表名称...
答案 1 :(得分:0)
有两个概念:
Worksheets("Names").Range(...)
Names.Range(...)
最初它们具有相同的值:
但是,在重命名标签后,这些名称将不会具有相同的值。 名称将更改,但代码名称仍然相同:
代码名称= Sheet1
(因此,您的代码失败,因为没有代码名称=姓名)
要检查这些值是否有所不同,右键单击选项卡> 查看代码>在左上角看到如下内容: