シート4〜9、次に12と13のセルからすべての画像(画像を含む)を消去しようとしています。次のコードがありますが、シート3-9 12-15で、私は理由を知らない。あらかじめ定義された範囲のオフセット/サイズ変更
どのような考えですか?
Sub ClearContents()
Dim i As Integer
For i = 4 To 9 And 12 And 13
Sheets(i).Cells.Clear
Sheets(i).Pictures.Delete
Next i
シート4〜9、次に12と13のセルからすべての画像(画像を含む)を消去しようとしています。次のコードがありますが、シート3-9 12-15で、私は理由を知らない。あらかじめ定義された範囲のオフセット/サイズ変更
どのような考えですか?
Sub ClearContents()
Dim i As Integer
For i = 4 To 9 And 12 And 13
Sheets(i).Cells.Clear
Sheets(i).Pictures.Delete
Next i
以下のコードを試してみてください。
Option Explicit
Sub ClearContents()
Dim i As Long
Dim Sht As Worksheet
Dim PicObj As Object
' loop through all worksheets in your workbook
For Each Sht In ThisWorkbook.Sheets
Select Case Sht.Index
Case 4 To 9, 12, 13
Sht.Cells.Clear
' loop through all shapes in your worksheet and delete them all
For Each PicObj In Sht.Shapes
PicObj.Delete
Next PicObj
Case Else '<-- for future cases, if you'll need
'do nothing
End Select
Next Sht
End Sub
代わりにそのインデックスのシート名を使用するように編集
あなたはSheets(array)
味Sheets
のコレクションを使用することができます
Option Explicit
Sub ClearContents()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets(Array("Sheet4", "Sheet5", "Sheet6", "Sheet7", "Sheet8", "Sheet9", "Sheet12", "Sheet13")) ' loop through wanted worksheets
ws.Cells.Clear
ws.Pictures.Delete
Next
End Sub
これは本当に素敵で短いバージョンですので、うまくいけばそれを動作させることができます。私はそれを試しましたが、今のところそれは以前と同じシートをクリアしています。もし私のワークブックにどのように配置されているかという点で、私のシートの順番で拾い上げることができるのかどうか分かりません。右から左へ:シート1、シート10、シート11、シート12、シート13、シート14、シート15、シート2、シート3、シート4、シート5、シート6、シート7、シート8、シート9 – user7431724
私はそれをもう一度試して、実際のワークシート番号ではなく、ワークシートの順序を使用します。 – user7431724
あなたのコードでは、Sheets(i)を私が数字であるように使ったので、これも私が使ったものです。そしてそれはシート "オーダー"を使用します。名前を使用する必要がある場合は、ThisWorkbook.Sheets(Array( "Sheet4"、 "Sheet5"、 "Sheet6"、 "Sheet7"、 "Sheet8"、 "Sheet9"、 "Sheet12"、 "Sheet13"))を使用します。 – user3598756
を私はそれがhであるべきだと思ったでしょうaveはシート4から8にのみ作用した( '9 And 12 And 13'は '8'に等しいので)。 – YowE3K
誰かがその点を得られない場合、@ YowE3Kはこれらの3つの数字のビットごとのANDを参照しています。これは誤った演算子の優先順位のためにエラーが発生したことを意味します。それは私の最初の考えでもありました... –
@ YowE3K私はスキミングによって集めたものから、シート名の数値接尾辞ではなく、UIの現在の順序に従っている可能性があります。 ?現在、そのシーケンスから欠落している数字は、合計の差異を説明している可能性がありますか? –