|
こんにちは。かみちゃん です。
>私もこのマクロが欲しくて検索したらこれがひっかかりました。
[#43665]で一応解決済みのようなのですが。
> 対象となる列(この場合("A1",LastCell)ですが)をマクロ実行前に指定する方法はありませんか?
以下のような感じでできます。
For 〜 Next の内側の記述は、変更ありません。
InputBoxが表示されたら、対象とする列を選択してください。
なお、選択した一番左の1列だけを処理します。(複数列には未対応)
Sub Sample1_1()
Dim rngColumns As Range
Dim LastCell As Range
Dim c As Range
Dim valData
On Error Resume Next
Set rngColumns = Application.InputBox("対象列を選択してください", Type:=8)
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
Set LastCell = Cells(Rows.Count, rngColumns.Columns(1).Column).End(xlUp)
For Each c In Range(Cells(1, LastCell.Column), LastCell)
If c.Value = "" Then
c.Value = valData
Else
valData = c.Value
End If
Next
MsgBox "終了!!"
End Sub
Sub Sample2_1()
Dim rngColumns As Range
Dim LastCell As Range
Dim c As Range
On Error Resume Next
Set rngColumns = Application.InputBox("対象列を選択してください", Type:=8)
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
Set LastCell = Cells(Rows.Count, rngColumns.Columns(1).Column).End(xlUp)
For Each c In Range(Cells(1, LastCell.Column), LastCell).SpecialCells(xlCellTypeConstants, 3)
If c.Address <> LastCell.Address Then
Range(c, c.End(xlDown).Offset(-1)).Value = c.Value
End If
Next
MsgBox "終了!!"
End Sub
|
|