アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております
下記のコードを書きました。
エラーでないのですが、なにも表示されません。
添付ファイルも添付しました。
間違っているところおしえてくれませんでしょうか

遣りたいこと
C列/D列 

Dim i As Long
Dim r As Range

Set r = Range("E151")
For i = 151 To Range("C1").Row
r = Cells(i, "C") / Cells(i, "D")
Set r = r.Offset(1)
Next

Set r = Nothing

「C列/D列 の割り算」の質問画像

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

  • うーん・・・

    できれば、提示して条件で
    やりたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/04/19 22:52
  • うーん・・・

    お願いします。

      補足日時:2020/04/19 22:52
  • へこむわー

    恐らくもう少しなんだと思います。
    それが、一時間ぐらい経ちますが、
    答えがでません。

      補足日時:2020/04/19 22:54

A 回答 (3件)

元のコードの問題点は以下の通りです。



Dim i As Long
Dim r As Range

Set r = Range("E151")
For i = 151 To Range("C1").Row   <=※1
r = Cells(i, "C") / Cells(i, "D") <=※2
Set r = r.Offset(1) <=※3

Next

Set r = Nothing

※1 Range("C1").Rowだと1になり、160行目までループしません。っというより、Forの中に入りません。
※2 Cellsは行・列共に数字で指定します。
   また、割り算の結果を変数に格納されたいようですが、rはRangeオブジェクトのため格納されません。
※3 おそらくE列の右の一つ隣のセルにということでしょうが、指定が一つ下のセルになっています。

上記を踏まえると

Dim i As Long
Dim r As Range
Dim ans as long

Set r = Range("E151")
For i = 151 To Range("C160").Row
ans = Cells(i, 3) / Cells(i, 4)
r.Offset(0, i -151).value = ans
Next

Set r = Nothing

となります。
    • good
    • 0
この回答へのお礼

有難うございます。
r.Offset(0, i -151).value = ans
r.offset(i151,0).value
にしてようやく完成しました。
お忙しいところありがとうございます。

お礼日時:2020/04/20 07:59

To Range("C1").Row



って1ですよね?
そのセルの値を使いたいのなら

To Range("C1").Value

では?
    • good
    • 0
この回答へのお礼

いつもお世話になっております
For i = 151 To Range("C1").Valueで対応で
やりましたが、わたしのやり方わるいのか、
動作いたしませんでした。
結果をもとめるとき、いろんなやりかたで
おぼいたいです。
有難うございます。

お礼日時:2020/04/20 08:02

何で質問のようなコーディングになったのか分からないですけど、


単純に以下のコーディングでは駄目ですか?

Dim i As Long

For i = 151 To 160
  Cells(i, 5) = Cells(i, 3) / Cells(i, 4)
Next
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難うございます。
変な質問してしまったようで
申し訳ございませんでした。

お礼日時:2020/04/20 07:58

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