2016-07-18 12 views
1

シートに名前を付けたい(064149107)。名前は変更できず、ワークブックには多数のシートがあります。シート名を挿入するセルに0から始まる

私のコードは私のシートの名前は、例えば0

、代わりの064149107私は、細胞内64149107得ることで始まる場合を除いて正常に動作します。

は、私は、この後にVLOOKUPをやっているように、私は一致を持っていない発見し、エラー2042

は、ここに私のコードです:

sht.Cells(LastRowsht + 1, 2) = sht.Name 

私もこの試みた:

  If Left(sht.Name, 1) = "0" Then 'règle le probleme d'un sheet name commencant par 0 
      sht.Cells(LastRowsht + 1, 2) = "0" & sht.Name 
      Else 
      sht.Cells(LastRowsht + 1, 2) = sht.Name 
      End If 

しかし、私は動作しませんでした。

+0

私はExcelが数字に文字列を変換していると思います。値を文字列として保存するだけです。 – Comintern

+0

シート名をセルに配置するのにVBAは本当に必要ないことに注意してください。 – trincot

答えて

1

このコードでは、名前の前にダンプ'という文字が表示されます。

sht.Cells(LastRowsht + 1, 2).Value = chr(39) & sht.Name 

また、あなたが最初Textにセルの書式を設定できます。私はそれを試みたがでていませんでした

sht.Cells(LastRowsht + 1, 2).Value = "'" & sht.Name 

sht.Cells(LastRowsht + 1, 2).NumberFormat = "@" 
sht.Cells(LastRowsht + 1, 2).Value = sht.Name 
+0

これが有効な場合は、緑色のチェックマークを付けて受け入れてください。 – Chrismas007

+0

ありがとう、完璧 – Florian

+0

@Florian緑のチェックマークで答えを受け入れてください。 – Chrismas007

0

次のような何かをしようとしませんでした。明示的にそれをテキストにして、私はそれがうまくいくと思う

0

セルのフォーマットを変更するには、リボン「ホーム」を使用して、「番号」タブで「一般」を「テキスト」に変更します。次に、コードを再度実行します。

ただし、セル内のシート名を入力するためにVBAは必要ありません。これは、セル内の公式で行うことができます:

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255) 
関連する問題