Excelに新しいので、何か間違ったことを説明してコメントのQをクリアできたら嬉しいですが、VBAはおそらくひどいですが、私は昨日初めて。複数のスプレッドシートに1つのボタンで複数のVBAを実行する
私はすべてのワークシートでキャリッジリターンを1つのボタンでクリアしようとしています。 私は、現在のワークシートにそれらをクリアする方法を見つけたと、これは正常に動作:
Sub RemoveCarriageReturns()
Dim MyRange As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each MyRange In ActiveSheet.UsedRange
If 0 < InStr(MyRange, Chr(10)) Then
MyRange = Replace(MyRange, Chr(10), "")
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
私は現在、しかしどれも動作するようには思えない、これはすべてのワークシート間で実行するために取得するには、いくつかの方法を探してきましたコードは次のとおりです。
Sub RemoveCarriageReturns()
Dim MyRange As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each ws In Worksheets
For Each MyRange In ActiveSheet.UsedRange
Select Case UCase(ws.Name)
Case "OTCUEXTR", "OTFBCUDS", "OTFBCUEL"
With ws
If 0 < InStr(MyRange, Chr(10)) Then
MyRange = Replace(MyRange, Chr(10), "")
End If
End With
End Select
Next
Next ws
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
私はそのすべてのシートを走ることがわかりますが、何も最初のシートを超えて変化しない 私はここで間違ってやって上の任意のアドバイスを(正常に動作し、キャリッジリターンを削除しますか。)?
これまでに回答があった場合は、これまでオンラインで解決策を見つけることができませんでした。
ありがとうございました!
ない理由を見つけると、ブックではなく、ワークシートに置き換えるでしょうか? –
あなたは正しい道にいる。 'ActiveSheet'を' ws'で置き換えるだけで動作します。 – newacc2240
@ newacc2240うまくいきました。すばやく対応してくれてありがとう!そのような迅速な修正が、私はそれを見つけるために永遠に奪われてしまったでしょう。 – TurboTemple