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

関数で、
=ABS(MATCH(D$9,6:6,0)-COLUMN(D$9))

上記のような数式があります。

この数式を、VBAで書換たいのです。

Sub ズレカウント()


Dim j As Long


For j = 4 To 38 Step 2
With Application


Cells(10, j) = .Match(Cells(9, j), Range("D6:AL6"), 0) - Columns(Cells(9, j))

End With

Next j


End Sub

- Columns(Cells(9, j))

この部分を、記載すると、型が一致しませんとなります。

同じ数値なので、型が一致するとおもうのですが、

どこを修正すればいいでしょうか?

お手数ですが、ご教示を尾根がします。

A 回答 (3件)

No.1です。



と言うより、

= .Match(Cells(9, j), Range("D6:AL6"), 0) - j

でも同じような気も?
行は固定、列は変動するけど変数: j と同じなのでしょ?
    • good
    • 0
この回答へのお礼

Cells(10, j) = .Match(Cells(9, j), Range("D6:U6"), 0) - (j - 3)

これでできました

お礼日時:2023/06/20 18:26

COLUMN関数は列番号を返す関数なので、COLUMN(D$9)ではD列9行セルは「何列目?」と言う意味。


4列目なので、COLUMN(D$9)=4です。

一方のVBAでのColumnsは列を表すRangeオブジェクトを返すプロパティ。
4じゃ有りません。

jが列番号を表してるのですから、
- Columns(Cells(9, j)では無くて、単に-jです。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2023/06/22 07:28

= .Match(Cells(9, j), Range("D6:AL6"), 0) - Cells(9, j).Column

    • good
    • 0
この回答へのお礼

Cells(10, j) = .Match(Cells(9, j), Range("D6:U6"), 0) - (j - 3)

これでできました

お礼日時:2023/06/20 18:22

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