Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1983 / 13645 ツリー ←次へ | 前へ→

【70669】一つ上のセルをコピー VBAッコ 11/12/15(木) 17:16 質問[未読]
【70670】Re:一つ上のセルをコピー UO3 11/12/15(木) 17:42 発言[未読]

【70669】一つ上のセルをコピー
質問  VBAッコ  - 11/12/15(木) 17:16 -

引用なし
パスワード
   セルが空白であれば、一つ上のセルをコピーするマクロを作成
下記を実行しました。

Sub test()
Dim a As String
Dim r As Range
a = "C5:IP" & Range("A" & Format(Rows.Count)).End(xlUp).Row
For Each r In Range(a)
If r.Value = "" Then r.Value = r.Offset(-1, 0).Value
Next
End Sub


a の行の範囲を変更したいのです。
A列には年間の日付けが入力されております。
システム日付(今日)までの行を実行するためにはどういったことが必要になるでしょうか。

【70670】Re:一つ上のセルをコピー
発言  UO3  - 11/12/15(木) 17:42 -

引用なし
パスワード
   ▼VBAッコ さん:

書きなぐっただけでテストはしていません。
勘違いあるいはバグあればご容赦。

Sub Test2()
  Dim z As Long
  Dim n As Long
  Dim v As Variant
  Dim i As Long, j As Long
  
  z = Range("A" & Rows.Count).End(xlUp).Row
  n = WorksheetFunction.Match(CDbl(Date), Range("A5:A" & z))
  z = 5 + n - 1
  v = Range("C4:IP" & z).Value
  For i = 2 To UBound(v, 1)
    For j = 1 To UBound(v, 2)
      If Len(v(i, j)) = 0 Then v(i, j) = v(i - 1, j)
    Next
  Next
  
  Range("C4:IP" & z).Value = v
  
End Sub

1983 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free