0

Excel 2007 の別のワークシートのセルの情報でシート名を更新したいと考えています。特定のワークシート名 (ブック内のすべてのワークシートではなく) のみを変更したいのですが、これらのワークシートの情報は同じワークシート内のセルから取得されます。 . セルが変更されるとすぐにシート名にこれらの変更を加えたいと思います。

ありがとう。

4

2 に答える 2

0

あなたは次のようなものを使いたい

Sub changeName()

   ThisWorkbook.Sheets("nameToBeChanged").Name = ThisWorkbook.Sheets("secondSheetName").Range("A1").Value

End Sub

これにより、シートのセル A1 の値が というシートsecondSheetNameの名前として使用されnameToBeChangedます。

次の文字はシート名に使用できないことを忘れないでください (つまり、セル A1 に次の文字を含めることはできません)。

\ / ? * [ ] < > " | :

シート名の最大長は 31 文字です


そして、セルの値が変更されるとすぐにそれを行うには、イベントを使用します。このコードから始めることができます:

Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox "Value changed for cell: " & Target.Address        
    Call changeName

End Sub

イベントをリッスンするシート (もちろん VBA ウィンドウ内) にそのコードを配置する必要があります。

Santosh からの投稿が役に立つかもしれません


編集:これはSantoshの写真です(上記のリンクを参照)。コードを配置する場所を正確に示します。
コードを配置する場所

ご覧のとおり、コードは Sheet1 という名前の項目 (矢印が指している場所) に配置されています。この場合、コードは Sheet1 に配置されているため、変更されたすべてのセルはサブ Worksheet_Change を呼び出します。

于 2013-07-17T11:50:35.007 に答える
0

あまり試していないようです。

Worksheets名前とコレクションを使用して、ワークシートにアクセスできます。その後、任意の範囲を使用して、取得する情報を含むセルにアクセスできます。セル B2 にあると仮定します。

Worksheets("ChangeMyName").Name = Worksheets("SomeOtherSheet").Range("B2")

セルが変更されるとすぐに変更されるようにするには、Change イベントを実装し、ターゲット セルと監視対象のセルを比較する必要があります。

http://msdn.microsoft.com/en-us/library/office/ff839775.aspx

于 2013-07-17T11:50:48.080 に答える