ヘッダー名を見つけてそれらの列を非表示にして、VBAの列のヘッダーをループしようとしています。 隠す部分はうまく動作しますが、単純な「再表示」を行い、エラーがスローされました。 実行時エラー '92':Forループが初期化されていません。VBA 1つのサブで作業するループ初期化で、ほとんど同じサブが動作しない
私が変更した唯一のものは、現在の選択を非表示にするかどうか(TrueまたはFalse)です。私は変数名を変更しようとしました。おそらく何かがサブシステム間で共有することによってうんざりしていると思っていましたが、それは助けになりませんでした。
WORKING '隠す' サブのコードを下回っている:非稼働 'ショー' サブは以下の通りです
Public Sub Activate_Print_Mode()
Dim SearchArray() As Variant SearchArray = Array("ISBN", "Sub Title",
"Paper Cut Off", "Despatch Date (ExW)", "Printer Location", "UK WH
ETA", "Suggested Pub ExW", "Suggested Pub ExUK", "INDENT/STATUS",
"UK VAT Price", "FX", "GB Net Price", "AU Price + Freight", "S/A",
"Discount", "PRICE NOTES", "ORDERED", "Budget Value", "Misc Specs")
Dim element As Variant
For Each element In SearchArray
' perform search, hide column
'counter = counter + 1
Rows("3:3").Select
Selection.Find(What:=element, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
ActiveCell.Offset(-1, 0).Select
Selection.EntireColumn.Hidden = True
Next element
ActiveSheet.Range("A1").Select
End Sub
:
Public Sub DeActivate_Print_Mode()
Dim DispSearchArray() As Variant SearchArray = Array("ISBN", "Sub
Title", "Paper Cut Off", "Despatch Date (ExW)", "Printer Location",
"UK WH ETA", "Suggested Pub ExW", "Suggested Pub ExUK", "INDENT/
STATUS", "UK VAT Price", "FX", "GB Net Price", "AU Price + Freight",
"S/A", "Discount", "PRICE NOTES", "ORDERED", "Budget Value", "Misc
Specs")
Dim DispElement As Variant
For Each DispElement In DispSearchArray
' perform search, hide column
'counter = counter + 1
Rows("3:3").Select
Selection.Find(What:=element, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
ActiveCell.Offset(-1, 0).Select
Selection.EntireColumn.Hidden = False
Next DispElement
ActiveSheet.Range("A1").Select
End Sub
できますか?
すべての範囲オブジェクトが相対親シートに割り当てられていることを確認してください。 'Worksheets(" Sheet1 ")。行(3)' –
"動作しません"は、2番目の例を実行すると何が起こるかについての良い説明ではありません。しかし、 'Find()'は隠しカラム/行の値を見つけられないので、うまくいきません。代わりにセルをループする必要があります。 –