[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ひとつ上のセルをコピーして違うところのセルに貼り付けるマクロ』(こまった)
いつもお世話になってます
少しわかりにくいのですが
例
A B
4/30 ← コピーしたいセル
1個
2個
・
・
・
・
20個
とあって
個数の横に日付を貼り付けて
完成例
A B
4/30
1個 4/30
2個 4/30
・
・
・
・
20個 4/30
みたいにしたいのですがどうすれば良いですか
わかりにくいのですがよろしくお願いします
< 使用 Excel:Excel2010、使用 OS:Windows7 >
・1個というセルが選択されていて、 ・20個というセルが最終行で、その下のセルは空白行である として、こんなコードはどうですか?
Sub test()
Dim rng As Range
Set rng = Range(Selection, Selection.End(xlDown))
rng.Offset(0, 1).Value = Selection.Offset(-1).Value
End Sub
前提が異なることに伴う微修正は、そちらでどうぞ。
(γ) 2020/04/30(木) 23:03
>1個というセルの上のセルをコピーして
Sub Test()
Dim myR As Variant
myR = Application.Match("1個", Columns(1), 0)
If IsError(myR) Then
MsgBox """1個"" が見つかりません!", vbExclamation
Else
Range("A" & myR, Cells(Rows.Count, "A").End(xlUp)).Offset(, 1).Value = _
Range("A" & myR - 1).Value
End If
End Sub
(ピンク) 2020/05/06(水) 09:11
(こまった) 2020/05/06(水) 16:25
>みたいにしたいのですがどうしたらいいでしょうか
Sub Test()
Dim fRng As Range, fAddress As String
Set fRng = ActiveSheet.Columns(1).Find("1個", LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchByte:=True)
If fRng Is Nothing Then
MsgBox """1個"" が見つかりません!", vbExclamation
Exit Sub
End If
fAddress = fRng.Address
Do
fRng.Offset(, 1).Resize(20).Value = fRng.Offset(-1).Value
Set fRng = ActiveSheet.Columns(1).FindNext(fRng)
Loop While fAddress <> fRng.Address
End Sub
(ピンク) 2020/05/06(水) 17:03
>でも必ずある状態で実行する場合ifはいりませんよね?
はい!!、要りません!!
(ピンク) 2020/05/06(水) 18:36
(こまった) 2020/05/06(水) 18:54
2個
みたいに間に数行開いてる場合
1個
2個
の個の行にだけ日付を貼り付けるようなことはできますか
(こまった) 2020/05/06(水) 19:49
>個の行にだけ日付を貼り付けるようなことはできますか
Sub Test2()
Dim c As Range, myDate As Date
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
If IsDate(c.Value) Then
myDate = c.Value
ElseIf c.Value Like "*個" Then
c.Offset(, 1).Value = myDate
End If
Next c
End Sub
(ピンク) 2020/05/06(水) 20:23
(こまった) 2020/05/06(水) 20:27
>仮に日付以外の値でも可能でしょうか
Sub Test3()
Dim c As Range, 項目 As String
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
If c.Value Like "*個" Then
c.Offset(, 1).Value = 項目
ElseIf c.Value <> "" Then
項目 = c.Value
End If
Next c
End Sub
(ピンク) 2020/05/06(水) 20:46
日付、日付以外の混合の場合
Sub Test4()
Dim c As Range, 項目 As Range
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
If c.Value Like "*個" Then
項目.Copy c.Offset(, 1)
ElseIf c.Value <> "" Then
Set 項目 = c
End If
Next c
End Sub
キリがないから、これで終わり。ヾ(^_^) byebye!!
(ピンク) 2020/05/06(水) 20:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.