3

goto通常のExcel 関数Ctrl+[ およびをシミュレートする VBA コードはありF5ますか?

例を使用してさらに詳しく説明します。

このProblem.xlsxには、 と の 2 つのワークシートがAlphaありBetaます。

へのコードが欲しい

  1. ワークシートのセルでCtrl+を実行します(つまり、セル内の Beta!B5 参照を取得します)。[A2Alpha
  2. ワークシートのセルにジャンプするようにB5( BetaBeta!B5 参照を使用してジャンプします)
  3. C5ワークシートのセルを 1 つ右に移動し、Betaそのセルを黄色に塗りつぶします。
  4. そして最後に、ワークシートのF5セルに戻るために a を実行しますA2Alpha

gotoctrl-[F5、などのさまざまなキーワードで 2 時間 Google を検索しましたがprevious selection、役に立ちませんでした。

追記:

Goto 関数 Ctrl-[ と F5 をシミュレートして、アクティブなセル (別のシートの別のセルへのリンクを含む) をシミュレートしようとしています。VBA コードはジャンプを実行し、カラー シェーディングを実行して、オリジナルシート。つまり、以下のコードは制限が厳しすぎる

Sub JumpColourJump()
    Worksheets("Beta").Range("B5").Offset(, 1).Interior.Color = vbYellow
    Worksheets("Alpha").Range("A2").Select
End Sub

コードは、同じファイル内またはアクティブ セルが参照している別のファイル内のどのシートにもジャンプできるように柔軟にする必要があります。

4

2 に答える 2

0

ほとんどのコードはマクロを記録することで作成できますが、より複雑な部分は次のようになります。

  • 選択したセルを参照する最初のセルに移動する -スーパーユーザーに関するこの投稿には、適切なアドバイスが含まれているようです
  • 前のシートに戻る - 関数の開始時にアクティブなシートへの参照を取得し、後でそれを復元することができます。
Dim initalSheet As Worksheet
' Take a reference to the current sheet
Set initialSheet = ActiveSheet

' *** Perform changes here ***

' Return to the initially selected sheet
initialSheet.Select
于 2013-03-18T04:53:40.303 に答える
0

ページ間を行き来するために、このようなものが機能します。

'follow local hyperlink
Application.Goto Reference:=Worksheets("Alpha").Cells(1, 1).FormulaR1C1
'color the cell to the right
ActiveCell.Offset(0, 1).Interior.Color = vbYellow
'return using the same method

その後ActiveCell.Offset(row, col)、正しいセルを取得して操作を実行し、同じメソッドを使用して戻ることができます。


前の場所に戻るには、変数に保存できます。

Dim returnSheet As String, returnCell As String
returnSheet = ActiveSheet.Name
returnCell = CStr(ActiveCell.Address(False, False))
'Jump to cell, do your magic
Application.Goto Reference:=Worksheets(returnSheet).Range(returnCell)

または、セルからセルへのいくつかのジャンプの場合、プッシュおよびポップ機能を実装するスタックのように機能するクラスモジュールが理想的です。

于 2013-03-18T05:04:35.620 に答える