2017-12-25 11 views
0

以下のループ関数でコンパイルエラー「型の不一致」が発生します。私はマスターワークシート内で複数のワークシートを結合しようとしており、それらを介してループ機能を持つのに役立ちます。どんな助けもありがとう。VBAのiループ関数で「型の不一致」コンパイラエラーが発生する

おかげで、最初の行にも

Public Sub combine2() 
    Dim i As Worksheet 
    For i = 1 To Worksheet.Count 

     Worksheets(i).Select 
     Columns("A:B").Select 
     Selection.copy 
     Sheets("sheet").Select 
     Selection.End(xlDown).Select 
     Selection.End(xlUp).Select 
     ActiveSheet.Paste 
     Range("A1").Select 
     Selection.End(xlDown).Select 
     Selection.End(xlDown).Select 
     Selection.End(xlUp).Select 

    Next i 
End Sub 
+4

はWorksheets.Count'へのI = 1の場合Integer'と として '薄暗いI'に最初の2行を変更してみて、それが助けかどうかを確認します。 – jpw

答えて

2

あなたは「i」は型ワークシートのオブジェクトとして、あなたは数の値を行くと、それを割り当てる変数を宣言します。ワークシートであると具体的に言われているため、何もできません。数値型ではありません(Integerなど)。これはタイプの不一致です。

そしてまた、それは、ワークシートでなければなりません - 以下のコードは、(シート1を除く)全てのシートの列(キャプションを除く)AとBからのワークブックの最初のワークシートにすべてをコピーします

Dim i As Integer 
For i = 1 To Worksheets.Count 
2

をワークシートではありません。あなたが実際にしたいことをするために少し微調整しなければならないかもしれません。

Public Sub combine2() 

    Dim Master As Worksheet 
    Dim Ws As Worksheet 
    Dim Rng As Range 
    Dim Rl As Long 
    Dim i As Integer 

    Set Master = Worksheets(1) 
    Application.ScreenUpdating = False 
    For i = 2 To Worksheet.Count 
     Set Ws = Worksheets(i) 
     With Ws 
      Rl = .Cells(.Rows.Count, "A").End(xlUp).Row 
      Set Rng = Range(.Cells(2, "A"), .Cells(Rl, "B")) 
      Rng.Copy 
     End With 

     With Master 
      Rl = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
      .Cells(Rl, "A").PasteSpecial xlValues 
     End With 
    Next i 
    With Application 
     .CutCopyMode = False 
     .ScreenUpdating = True 
    End With 
End Sub 
+0

私は一般的な質問に答えるために、エラーの質問の代わりにupvoted(私がしたように) –

関連する問題