プロが教えるわが家の防犯対策術!

A1からO1内に値のあるセル(値のあるセルは一つでそれ以外は数式はありますが空白セルです。)
を抽出(コピーして)してP1に値のみ貼り付けする。
この作業を2行目以降(2~行の終わりまで)にも反映させる。

以上のコードが分かる方、どなたか教えて頂けますでしょうか?

お手数をおかけしますが、よろしくお願いいたします。

A 回答 (4件)

折角数式で用いたのならワークシート関数でも使用されても宜しいのでは?



Sub test()
Dim r As Range

For Each r In Range("A1", Cells(Rows.Count, "A").End(xlUp))

r.Range("P1").Value = WorksheetFunction.Concat(r.Range("A1:O1"))

Next

End Sub
    • good
    • 0

個人的見解です。



空白はセルに何も値がない状態。
"" は長さ0の文字列がある状態。

と思ってましたが、ベテラン様が言うように同じなのですね?
実際最終セルなどを検索させた時、違いが出るのはコードのミスですかね。
    • good
    • 0

No.1の者です。



解決されたのなら、使う事もないと思いますが、予め作っておいたので、
一応、載せておきます。

Option Explicit
Sub 連結()
Dim I As Long, J As Long, myMoji As String
For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
myMoji = ""
For J = 1 To 15
myMoji = myMoji & Cells(I, J).Value
Next J
Cells(I, 16).Value = myMoji
Next I
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
お手数をおかけして申し訳ありません。また、コードを作成して頂きありがとうございます。
今回作成して頂いたコードは今後の参考や業務においてご活用させてい頂きます。

お礼日時:2022/01/04 00:19

こんばんは。



確認になりますが、A1~O1までで、空白とは、””の事でしょうか?
それとも、空白文字 ” "が入っていますか?

Excel 2019とOffice 365版のExcelで、””でしたら、全ての文字を連結した
ものを表示すれば、目的の結果が得られるかと。
それでしたら、関数でもできるのでは?と思いまして。
セルP1に、=CONCAT(A1:O1)
それ以降は、P1セルをコピーして、P2以下貼り付けで。

Excel2016以前ですと、使えない関数ですが。。。

https://dekiru.net/article/21945/
    • good
    • 0
この回答へのお礼

ご確認ありがとうございます。
空白とは””のことです。
説明足らずで申し訳ございません。

このような関数があるとは知りませんでした。
おかげさまで問題が解決致しました。
本当にありがとうございます。

お礼日時:2022/01/03 23:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!