2016-04-04 14 views
0

私は以下のコードを実行していて、うまくいきます - Sheet1のセルB1に指定された名前のファイルを作成します。エラー。シート名を変更するときにエラーが発生する

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
Replace(Sheet1.Range("B1").Text, ".txt", "") & ".txt", True) 

あなたは(VBエディタのプロジェクトエクスプローラウィンドウに示されている。当初はシートタブ名と同じですが、あなたは、タブ名を変更したときに変更されません)シートのコードネームを使用しているように見えます

更新へ:

Replace(Sheets("Sheet1").Range("B1").Text, ".txt", "") & ".txt", True) 

次に、新しいシート名であるものは何でも "シート1" を更新...

0

2つの概念があります:

は、
  • 名 - >あなたが書くときに使用Worksheets("Names").Range(...)
  • コード名 - >あなたが最初Names.Range(...)

を書くとき、彼らは同じ値持っている使用:

  • 名を=シート1を
  • コード名= Sheet1

しかし、の名前をに変更すると、それらの名前は同じ値になりません。 名前を変更しましたが、コード名同じままされます。

  • 名=名
  • コードネーム= Sheet1の

    (そう、あなたのコードがあるため失敗コード名=名前はありません)

は、これらの値が異なっていることを確認するには、は右のように表示左上にタブに>ビューコード>をクリックします。

  • シート1(名称)
  • のSheet2(シート2)
  • シート3(シート3)

name vs code name

関連する問題