私は2017年から2066年までの50年の表を持つワークシートを用意しています。このマクロは最初の10年間の印刷領域を作成しており、10年目はユーザー入力で、他の列。私たちは10年連続(2026)を削除し、ユーザー入力が2026より大きい場合にのみユーザー入力に置き換えます。VBA - 列を非表示にするためのランタイムを最適化する
私のマクロは本当に遅いと私はどのようにフィードバックを探していますそれをスピードアップする。
With Sheet1
If userinputyear > 2026 Then
c = 10 'column index corresponding to consecutive 10th year 2026
Do While .Cells(5, c) <> userinputyear
.Cells(5, c).EntireColumn.Hidden = True
c = c + 1
Loop
Do While c + 1 <> 50 'column index corresponding to year 2066
.Cells(5, c + 1).EntireColumn.Hidden = True
c = c + 1
Loop
end with
(あなたの列は年に基づいてソートされている想定)。 – bernie
Bernieありがとう、私は私のマクロでそれを持っています。 – lostinOracle
最後のループをスキップし、 '.Cells(5、c + 1).Resize(1,50-c).EntireColumn.Hidden = True'のようなものを使用してください。 –