2021/08/08(Sun) 08:36:59 編集(投稿者)
> Range("Y" & cn).Value = c.Value
> の所のを"Y4"と入れるとマクロが動きません。
Y4セルから値を入力するのなら、cnの開始値を4となるようにcn=3として調整します。
> 表示させるセル番号は実は"Y"という列番ではなく 例えば"Y4"とか先頭行も
> 微妙にズレるので
Range("Y" & cn).Value = c.Value としていますが、
Cells(cn,"Y").Value = c.Value
とした方がわかり易かったりしますか?Cells(行,列)となります。
Sub test()
Dim myRng As Range, cn As Long
Dim c As Range
Set myRng = Range("A1:G6") '値があるかを判断するセル範囲
cn = 3 'cnの開始値を4とするため、ここでは3を設定します
For Each c In myRng 'セル範囲を1個づつチェックします
If c.Value <> "" Then 'セルの値が"" でない場合セルに値を入力します
cn = cn + 1 'セルの値が""でない場合はcnの値をカウントアップします cn=4から始まります
Range("Y" & cn).Value = c.Value 'Y列のcn行目に値を入力します
End If
Next c
End Sub