システムwiki

MacのためのExcelのマクロ

JohnMah 受付中 最終更新日:2021-06-15 01:48

他のシートの値が変更されたときにシートを隠すことを目的としたマクロを書きました.私の意図は、条件付きで適用可能な特定の分野を隠す/表示することです.私は単一のシートの特定の列で同じことをする必要があります.

コードはエディタでそれを実行するときに機能しますが、Excelで直接値を変更したときではありません.私はあらゆる助けが大まかに感謝されるでしょう.これがコード:

です

サブhide_rr_tabs()

ケースワークシート(「設定」)を選択してください.範囲( "d11")value

ケース「いいえ」

ワークシート( "MF Rent Roll")Visible= false

ワークシート( "MF RR RAW")Visible= false

ワークシート(「レンタルロール」)Visible= True

ワークシート( "RR RAW")Visible= true

ケース「はい」

ワークシート( "MF Rent Roll")Visible= true

ワークシート( "MF RR RAW")Visible= true

ワークシート(「レンタロール」)Visible= False

ワークシート( "RR RAW")Visible= false

終了

終了SUB

返信リスト(回答:12)

7 #
JohnMah

HANSV-マクロでいくつかの奇妙な行動を見ています.エディタとファイルの両方を保存し、ファイルを再度開くだけで断続的に機能します.値を1回変更できますが、別のタブをクリックせずに2回目にはなりません.私がこれをしたら
数回、それはちょうどうまく機能し始めます.考え?

応答7# ->にスキップ
6 #
HansVMV

それは奇妙なことです-それはサンプルワークブックで私のために失敗することなく機能します.

ワークブックのストリップダウンコピー(機密情報なし)を作成し、OneDrive、Google Drive、FileDropper、またはファイルをアップロードして共有できるWebサイトの1つを通して使用できます.ドロップボックス.それからにリンクを投稿してください
ここにアップロードして共有ファイル.

応答6# ->にスキップ
5 #
JohnMah

これがリンクです-セルC11のマルチファミリとセルC11の他の選択肢の間で切り替える場合は、レンタロールとMFレンタロールの間でレンタリングロールページが変更されます.ダッシュボードページの列を非表示にするためのコードを追加しました.
私が見ているのは、最初の変更がうまくいくことですが、その後の変更は私が別のタブをクリックするまで実行されてはいけません.後でうまく機能します.それがウォームアップする必要があるようなようです.

応答5# ->にスキップ
3 #
HansVMV

おそらくそれはWindowsのためのExcelとMacのExcelの違いです-あなたのワークブックのコードは私のために完全にWindowsのために完全に機能します.

Macの専門家が見てください.

応答3# ->にスキップ
2 #
JohnMah

非常に奇妙な-私がそれから切り替えたときではなく、「マルチファミリー」に切り替えると遅延/ハングが発生しているようです.私はマシンを再起動しました、そしてそれはまだそれをやっています.Excelの専門家のためのMacに着くのやり、それはあなたの以前の結果として来るでしょうか

応答2# ->にスキップ
1 #
HansVMV

Mac ExpertのExcelがこのスレッドを読み、返信することを願っています.

次の24時間ほどの反応がない場合は、注意を引くために新しいスレッドを始めます.

応答5# ->にスキップ
4 #
HansVMV

ありがとう-私はあなたに戻ってきます、それは私が住んでいる場所の夕日です.

11 #
HansVMV

Visual Basic Editorの[プロジェクトエクスプローラ]windows で、[Microsoft Excelオブジェクト]の下の設定シートをダブルクリックします.

次のコードをワークシートモジュールにコピーします.

プライベートサブワークシート(範囲としてのBYVALターゲット)
交差しない場合(範囲( "D11")、ターゲット)は
application.enableEvents= false
ケース範囲(「D11」)を選択してください.値
ケース「いいえ」
ワークシート(「MF賃貸ロール」).Visible= false
ワークシート( "MF RR RAW")Visible= false
ワークシート(「レンタルロール」)Visible= true
ワークシート( "RR RAW")Visible= true
ケース「はい」
ワークシート(「MFレンタルロール」)Visible= true
ワークシート( "MF RR RAW")Visible= true
ワークシート(「レンタルロール」)Visible= false
ワークシート( "RR RAW")Visible= false
終了
application.enableEvents= true

の場合は終了 終了SUB

応答11# ->にスキップ
12 #
JohnMah

ワークシートモジュールでは、個々のシートのコード(この場合は設定)を意味します.私はこれをしました、そしてそれは仕事をしませんでした.コードを踏み込もうとすると、ダイアログボックスのようにビープ音が開きますが、1つが表示できません.何かご意見は?

応答12# ->にスキップ
10 #
HansVMV

はい、それが私が意味するものです.サンプルワークブックを参照してください https://www.dropbox.com/s/1mduqwrspgngx5t/rr_tabs.xlsm?dl=1

応答10# ->にスキップ
9 #
JohnMah

HANSV-どうもありがとうございました.これは今働いています.あなたのための最後の質問:はい/いいえをチェックするのではなく、コードをチェックして= "マルチファミリー"または<>"マルチファミリーをチェックするのでしょうか.

応答9# ->にスキップ
8 #
HansVMV 1

それは

です

プライベートサブワークシート(範囲としてのBYVALターゲット)
交差しない場合(範囲( "D11")、ターゲット)は
application.enableEvents= false
ケース範囲(「D11」)を選択してください.値
ケース「マルチファミリー」
ワークシート(「MF賃貸ロール」).Visible= false
ワークシート( "MF RR RAW")Visible= false
ワークシート(「レンタルロール」)Visible= true
ワークシート( "RR RAW")Visible= true
ケース
ワークシート(「MFレンタルロール」)Visible= true
ワークシート( "MF RR RAW")Visible= true
ワークシート(「レンタルロール」)Visible= false
ワークシート( "RR RAW")Visible= false
終了
application.enableEvents= true

の場合は終了 終了SUB