VBA Excel、コピーされたシートの順序が間違っている

MKR

私はその問題に苦しんでいます。名前の異なる2つのシートがあり、以下のクエリで説明されているように、同じ基準でドキュメント全体にコピーしたいと思います。

VBA Excelは、作成された前のシートに基づいた番号で新しいシートを追加します

VBA Excelは、複製された前のシートに基づく番号で既存のシートを複製します

1枚の名前は問題なく機能しますが、2枚を同時に起動するとエラーが発生します。

私のコードは次のようになります。

 Sub Sheetaadding()

 'first sheet

 Dim wsr As Worksheet, wso As Worksheet

 Application.ScreenUpdating = False

 Set wsr = ThisWorkbook.Sheets("Vet Area Map 1")
 Set wso = ThisWorkbook.Sheets("Area Map 1 Open")
 Dim I As Long, J As Long, K As Long
 Dim xCount As Integer, yCount As Integer

 For I = 1 To ActiveWorkbook.Sheets.Count
    If InStr(1, Sheets(I).Name, "Vet") > 0 Then xCount = xCount + 1
 Next

 For I = 1 To Sheets.Count - (Sheets.Count - 1)

 With Sheets("Vet Area Map 1")
 .Copy After:=ActiveWorkbook.Sheets(wsr.Index + xCount + I)
 ActiveSheet.Name = "Vet Area Map " & xCount + 1
.Select
End With
Next I

'second sheet

For J = 1 To ActiveWorkbook.Sheets.Count
    If InStr(1, Sheets(J).Name, "Open") > 0 Then yCount = yCount + 1
Next

For J = 1 To Sheets.Count - (Sheets.Count - 1)

 With Sheets("Area Map 1 Open")
 .Copy After:=ActiveWorkbook.Sheets(wso.Index + (yCount + (J - 1)))
 ActiveSheet.Name = "Area Map " & yCount + 1 & " Open"
.Select
End With
Next J

Application.ScreenUpdating = True
End Sub

そして、結果はまったく逆です。獣医エリアマップがうまくいくので、エリアマップ1オープンは逆の順序になります。ここに画像の説明を入力してください

画像に示されているように、これらのシートを交換可能に表示するにはどうすればよいですか(「希望の順序」)。Vet Area Map3、Area Map 3 Open、Vet Area Map 4、Area Map 4Openなどを表示したい。

クリストファーウェーバー

何かを逃したかもしれませんが、複雑なこと.Copy After:=が問題の原因だと思います

また、ループの目的もわかりませんFor I = 1 To Sheets.Count - (Sheets.Count - 1)が、I = 1 to x - (x-1)Whichと同じI = 1 to 1であるため、ループはそれほど多くありません。

技術的には、ページを削除しない限り、2回カウントすることはほとんど役に立たないようです。また、各アクションの後に元のシートを選択することもありません。そして他のいくつかのクリーニング:

Sub Sheetaadding()

Dim wsr As Worksheet, wso As Worksheet
Dim I As Long, xCount As Long
Set wsr = ThisWorkbook.Sheets("Vet Area Map 1")
Set wso = ThisWorkbook.Sheets("Area Map 1 Open")

For I = 1 To ActiveWorkbook.Sheets.Count
    If InStr(1, Sheets(I).Name, "Vet") > 0 Then xCount = xCount + 1
Next

 'first sheet
wsr.Copy After:=ActiveWorkbook.Sheets(wsr.Index - 1 + xCount * 2)
ActiveSheet.Name = "Vet Area Map " & xCount + 1

'second sheet
wso.Copy After:=ActiveSheet
ActiveSheet.Name = "Area Map " & xCount + 1 & " Open"


End Sub

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Excelのvbaコードで順序付けされていないHTMLリストを使用する方法は?

分類Dev

VBAを使用して、あるシートから別のシートに範囲内の値をコピーして、事前定義された順序で貼り付けるにはどうすればよいですか?

分類Dev

VBA正規表現-数式で使用されている値のデータ型が間違っています

分類Dev

VBAExcelシートが間違った順序でコピーされた

分類Dev

間違った回数実行されているVBAの次のループの場合

分類Dev

Excel vba-条件が満たされた場合、すべての種類の形状を持つ別のシートに特定のコピー/貼り付け行

分類Dev

vbaを使用して、あるシートから別のシートに逆の順序でデータをコピーします

分類Dev

VBAを使用して、特定のテキストが含まれている特定の行を別のシートにコピーしたい

分類Dev

VBA-複数のシート間で列の順序を並べ替える

分類Dev

あるシートから別のシートにコピーされたVBAスクリプト

分類Dev

複数のシートからのExcelコピーが機能しないvba

分類Dev

VBAを使用して、複数の条件が満たされた場合に特定の行の詳細を新しいワークシートにコピーするにはどうすればよいですか?

分類Dev

Excel VBA、新しいシートにあるセルが表示されている場合は、新しいシートにコメントを表示する

分類Dev

別のExcelシートVBAに値をコピーする

分類Dev

与えられた入力が間違っていると、vbaが常にエラーなしを返すのはなぜですか?

分類Dev

Excel VBAは、100000行ごとの範囲でデータをコピーし、すべてのデータがその範囲でコピーされるまで別のシートに貼り付けます

分類Dev

複数の条件が満たされた場合、VBA 行を新しく作成されたシートにコピーする

分類Dev

Excell VBAは、指定された順序でExportAsFixedFormatを使用して一部のワークシートをPDFにエクスポートします

分類Dev

EXCEL VBA 1週間分のデータを別シートにコピー

分類Dev

VBAの問題特定の行/列をWordテーブル(行がマージされている)からExcelにコピーする

分類Dev

ヘッダーが追加された範囲から値をコピーし、vbaを使用してExcelでサイズ別にソートする

分類Dev

Excel VBA-バッチファイルリストに基づいて300のワークブック範囲をシートにコピーしようとしましたが、「範囲クラスの特別なメソッドの貼り付けに失敗しました」というエラーが表示されます

分類Dev

列名に基づいてVBAを使用して、あるExcelシートから別の(複雑な)Excelシートにデータをコピーします

分類Dev

エラー450:引数の数が間違っているか、プロパティの割り当てが無効ですExcel-Vba

分類Dev

ExcelシートがロードされたときにVBAでコンボボックスを初期化する

分類Dev

範囲をコピーして貼り付けると、VBAのwithステートメントを使用して開いているブックが誤って選択されます

分類Dev

間違ったデータが別のシートにコピーされています

分類Dev

VBA保護シート内の表示されているセルのみをコピーできるようにする

分類Dev

VBAを使用してExcelシートの行をコピーし、CSVに送信するにはどうすればよいですか?

Related 関連記事

  1. 1

    Excelのvbaコードで順序付けされていないHTMLリストを使用する方法は?

  2. 2

    VBAを使用して、あるシートから別のシートに範囲内の値をコピーして、事前定義された順序で貼り付けるにはどうすればよいですか?

  3. 3

    VBA正規表現-数式で使用されている値のデータ型が間違っています

  4. 4

    VBAExcelシートが間違った順序でコピーされた

  5. 5

    間違った回数実行されているVBAの次のループの場合

  6. 6

    Excel vba-条件が満たされた場合、すべての種類の形状を持つ別のシートに特定のコピー/貼り付け行

  7. 7

    vbaを使用して、あるシートから別のシートに逆の順序でデータをコピーします

  8. 8

    VBAを使用して、特定のテキストが含まれている特定の行を別のシートにコピーしたい

  9. 9

    VBA-複数のシート間で列の順序を並べ替える

  10. 10

    あるシートから別のシートにコピーされたVBAスクリプト

  11. 11

    複数のシートからのExcelコピーが機能しないvba

  12. 12

    VBAを使用して、複数の条件が満たされた場合に特定の行の詳細を新しいワークシートにコピーするにはどうすればよいですか?

  13. 13

    Excel VBA、新しいシートにあるセルが表示されている場合は、新しいシートにコメントを表示する

  14. 14

    別のExcelシートVBAに値をコピーする

  15. 15

    与えられた入力が間違っていると、vbaが常にエラーなしを返すのはなぜですか?

  16. 16

    Excel VBAは、100000行ごとの範囲でデータをコピーし、すべてのデータがその範囲でコピーされるまで別のシートに貼り付けます

  17. 17

    複数の条件が満たされた場合、VBA 行を新しく作成されたシートにコピーする

  18. 18

    Excell VBAは、指定された順序でExportAsFixedFormatを使用して一部のワークシートをPDFにエクスポートします

  19. 19

    EXCEL VBA 1週間分のデータを別シートにコピー

  20. 20

    VBAの問題特定の行/列をWordテーブル(行がマージされている)からExcelにコピーする

  21. 21

    ヘッダーが追加された範囲から値をコピーし、vbaを使用してExcelでサイズ別にソートする

  22. 22

    Excel VBA-バッチファイルリストに基づいて300のワークブック範囲をシートにコピーしようとしましたが、「範囲クラスの特別なメソッドの貼り付けに失敗しました」というエラーが表示されます

  23. 23

    列名に基づいてVBAを使用して、あるExcelシートから別の(複雑な)Excelシートにデータをコピーします

  24. 24

    エラー450:引数の数が間違っているか、プロパティの割り当てが無効ですExcel-Vba

  25. 25

    ExcelシートがロードされたときにVBAでコンボボックスを初期化する

  26. 26

    範囲をコピーして貼り付けると、VBAのwithステートメントを使用して開いているブックが誤って選択されます

  27. 27

    間違ったデータが別のシートにコピーされています

  28. 28

    VBA保護シート内の表示されているセルのみをコピーできるようにする

  29. 29

    VBAを使用してExcelシートの行をコピーし、CSVに送信するにはどうすればよいですか?

ホットタグ

アーカイブ