[[20150602104727]] 『空白行を見つけて数式を入力コピー』(RI) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白行を見つけて数式を入力コピー』(RI)

Cells(2, 7).End(xlDown).Row
が最終行取得なのはわかるのですが
最終行を上から探していって空白行があったらそれ以降G500までに
数式をVBAで入れたいのですがコードがわかりません。
どなたかわかりますでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows8 >


 500くらいなら1行ずつ中を見て判断して良いんじゃないかと思いますが、
他の要件でもあるかしら。
Sub test()
    Dim r As Range
    For Each r In Range("G2:G500")
        If "" & r.Value = "" Then
            '空なので処理
            Debug.Print r.Address
        End If
    Next
End Sub

(ご近所PG) 2015/06/02(火) 11:06


こんにちは

こんな感じでも、

Sub test()

    Dim r As Range
    On Error Resume Next
    Set r = Range("G1:G500").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If r Is Nothing Then Exit Sub
    r.FormulaR1C1 = "=RC[-6]"
End Sub

(ウッシ) 2015/06/02(火) 11:10


説明不足です。せっかくかいて頂いたのにすみません。

A列商品名 B列が日付 C列作業列 D列数量1 E列数量2 F列作業列 D列単価

になっています。

他のファイルから前月のA〜D列までをVBAで抽出するマクロボタンを配置しています。
前月の値は月によりことなるので
D列の前月の値を消さないように、前月の値の下から
VLOOKUPを500くらいまで(あれば足りそうなので)コピーしたいと思っています。
Range("空白のセル")="=IF(ISERROR(VLOOKUP(空白セルのF列、単価シートJ3:K21,2,False)),,VLOOKUP(空白セルのF列、単価シートJ3:K21,2,False))"
という式を入れていきたいのですがそれはどのようにしたらよいでしょうか?
(RI) 2015/06/02(火) 13:16


既に、空なセルだけ反応するループの仕方が提案されているので、ここに式を書くだけと思いますが…?

 Sub test()
    Dim r As Range
    For Each r In Range("G2:G500")
        If "" & r.Value = "" Then
            r.Formula = "=IF(ISERROR(VLOOKUP(" & r.Address & ",単価シート!J3:K21,2,False)),,VLOOKUP(" & r.Address & ",単価シート!J3:K21,2,False))"
        End If
    Next
 End Sub
(???) 2015/06/02(火) 13:40

上記のコードだとVLOOKUP(F列、単価sheet!J3:K21,2,False)が良いのですが
VLOOKUP(G列、単価sheet!J3:K21,2,False)になってしまいます・・・
(RI) 2015/06/02(火) 14:13

こんにちは

Sub test()

    Dim r As Range
    On Error Resume Next
    Set r = Range("G1:G500").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If r Is Nothing Then Exit Sub
    r.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],単価シート!R3C10:R21C11,2,FALSE))," & _
                        ",VLOOKUP(RC[-1],単価シート!R3C10:R21C11,2,FALSE))"
End Sub

では、どうですか?

(ウッシ) 2015/06/02(火) 14:14


できました!本当に助かりました!ありがとうございます!!

(RI) 2015/06/02(火) 14:41


r.Address を、
r.Offset(0,-1).Address でも。
(???) 2015/06/02(火) 14:43

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.