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

D列に00~09の2桁の数字が入力されています。
これらの頭の"0"を取り、1桁の0~9のにしたいです。
そしてC列とD列の値を結合したものをQ列に返したいです。


C列:スイカ
D列:05
  ↓
C列:スイカ
D列:5
Q列:スイカ5


D列は途中に空欄がある場合があります。
最大500行としています。

VBAでできますでしょうか?宜しくお願いいたします。

質問者からの補足コメント

  • すいません質問内容が足りませんでした。
    D列が空欄の場合はC列の値をQ列に書き込むだけです。
    宜しくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/09/03 10:00
  • ご質問の内容に沿った回答かわかりませんが
    D列の2桁の数字を2桁から1桁して
    C列とD列の値を結合したものをQ列に返す部分です。
    見当違いでしたらすいません。

    No.3の回答に寄せられた補足コメントです。 補足日時:2022/09/03 10:09

A 回答 (5件)

こんにちは


01なら1
10なら0
11 は 1で良いのでしょうか

01なのでD列は全部文字ですよね
C列も文字・・
ならば、

Q1=C1 & Right(D1, 1)
たしか、Rightは空白セルでも
エラーは返らなかったかと・
違ってたら対策を・・

数式でも上記
繰り返し処理
Dim r As Range
For Each r In Range("Q1:Q500")
r.Value = r.Offset(, -14).Value & Right(r.Offset(, -13), 1)
でも出来ると思いますよ
    • good
    • 0
この回答へのお礼

ありがとうございます!解決できました!

お礼日時:2022/09/04 10:43

こんにちは



イマイチよくわかっていませんけれど・・

With Range("Q1:Q500")
.FormulaLocal = "=C1 & IF(D1="""","""",D1*1)"
.Value = .Value
End With

とかで、できませんかね?

※ D列は空白か数字のみという条件下で考えています。
    • good
    • 1

どの部分の処理を聞きたいのか、書いた方がよろしいかと。

この回答への補足あり
    • good
    • 0

Q列に:C列セル&D列セル


で簡単に出来ます。
    • good
    • 0

・D列は途中に空欄がある場合があります。



イレギュラーな場合の処置法を記載しておくと宜しいかも。
単純に判断すればC列の値だけをQ列に書き込むだけとは思えますが、推測が外れたら無駄になるので。
この回答への補足あり
    • good
    • 0

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