2016-11-11 7 views
0

ランダムな枚数の情報(7枚目以降)をコピーするコードがあります。情報をコピーしてNULLにカウントしないでください。Excel VBA

Sub Controle() 

Dim sh As Worksheet, N As Long 
Dim i As Long, M As Long 
N = Sheets.Count 
M = 1 
For i = 7 To N 
    Sheets(i).Range("E2").Copy 
    Sheets("Controle tabel").Cells(1, M).PasteSpecial (xlValues) 
    Sheets("Controle tabel").Cells(1, M).PasteSpecial (xlFormats) 
    M = M + 1 
Next i 
End Sub 

を次のように私も、列Aの値の量をカウントしたい、私はこの

Sheets(i).Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count 

を追加しようとしましたが、それは実行されませんが、私は私がどこにどのように追加する必要があると思いますコードを貼り付ける名前の下に来なければならないので貼り付けますが、どのようにしてこれを行うことができないのかわかりません。私はちょうどM

Sheets(i).Range("A:A").Cells(1, L).SpecialCells(xlCellTypeConstants).Count 

のようにリストを作成する新しい変数Lを追加しました。しかし、それはまだ私はあなたにも、COUNTAを持っているので、しかし、以来(ヌルをカウントしないように間違った方法を使用しているかもしれないと思う実行されません我々は

)私が思うに、これは難しいですシートの名前を知らないので、それはまた、ループ7日後にすべてのシートをする必要があり、列を少し推測

+0

何を意味するのですか?エラーメッセージが表示されたら、それは何ですか?あなたの最初の定式化は私には大丈夫です.2番目の式は1つのセルのみをチェックしています(Lが正の値を持つと仮定します)。 – SJR

+0

これは私にこのオブジェクトによってサポートされていないメソッドを提供しています – Ramkoe

+0

その値をセルに割り当てましたか? 'Sheets(" Control tabel ")セル(1,1)=シート(i).Range(" A:A ")Cells.SpecialCells(xlCellTypeConstants).Count'?それ自体では何もしていないので動かないでしょう。 – SJR

答えて

0

でいない空のセルを数えるが、この?

Sub Controle() 

Dim sh As Worksheet, N As Long 
Dim i As Long, M As Long, L As Long 
N = Sheets.Count 
M = 1 
For i = 7 To N 
    Sheets(i).Range("E2").Copy 
    Sheets("Controle tabel").Cells(1, M).PasteSpecial (xlValues) 
    Sheets("Controle tabel").Cells(1, M).PasteSpecial (xlFormats) 
    Sheets("Controle tabel").Cells(1, M + 1) = Sheets(i).Range("A:A").SpecialCells(xlCellTypeConstants).Count 
    M = M + 2 
Next i 

End Sub 
+0

ahhhはい、ありがとうございます@SJR – Ramkoe

+0

私はお互いに貼り付けて、ワークシート、N限り 暗いとしてSH iがあれば、M限り N = Sheets.Count M = 2の場合、I = 7 N シート(I).Range( "E2")。コピー 枚( "Controle tabel")Range( "A"&M).PasteSpecial(xlValues) シート( "Controle tabel")。範囲( "A"&M).PasteSpecial(xlFormats) シート( "Controle tabel")。 SpecialCells(xlCellTypeConstants).Count M = M + 1 次はiです。End Sub' – Ramkoe

+0

他の図の下にある場合は、「セル(1、M + 1)」を「セル(2、M)」に置き換え、M増分を1に戻します。 – SJR

0

一度これを試してみてください - あなたは "実行されません" で

Dim sh As Worksheet, N, i, m, lastrow, nullcount As Long 
N = Sheets.Count 

For i = 7 To N 

lastrow = Sheets("Controle tabel").Range("A500000").End(xlUp).Row + 1 
Sheets("Controle tabel").Range("A" & lastrow).Value = Sheets(i).Range("E2").Value 

Next i 
On Error Resume Next 

nullcount = Application.WorksheetFunction.CountIf(Sheets("Controle tabel").Range("A:A"), "NULL") 

Sheets("Controle tabel").Range("A" & lastrow).Value = nullcount 
関連する問題