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

A2の値がA1の値と同じ場合はB2にB1の値+1をして
A2の値がA1の値と違う場合はB2に"1"を繰り返しさせて入力するように
以下としたのですが、A列の値がなくなる限り1が入力されるだけなのですが
どうすれば、A列のセルに同じ値が続く場合連番とすることができるでしょうか。お願いします。

range("B1").value = 1
range("B2").select
dim 番号 As varient
番号 = activecell.offset(-1, -1).value
do until activecell.offset(0,-1).value = ""
with activedell
if offset(0, -1).value = 番号 then
offset(0, 0).value = offset(-1, 0).value + 1
end if
offset(0, 0).value = "1"
offset(1, 0).select
end with
loop

A 回答 (3件)

だいたいこんなOFFSETを使って処理する(判別する)セルをずらすやり方はつかいませんよ。


本質問が解決したら、また別の機会に
●For Nextを使いiを行ポインターとして処理します。
●do until なら行ポインターとしてi=i+1として次々処理します。
エクセルVBAの(ビジネス系の)本などみて勉強してください。
それに質問にコードを貼り付けるなら、VBEの画面(1度は実行後の)をコピー貼り付けしては。
本質問のようにミスタイプがあると、それ(文法的な)が原因か他の原因か判りにくくなりますよ。
varient activedell offset(0, 0)の前のピリオド無し など
ーー
Activecellも危ういと思う。実行時にたまたま意図以外のところがアクチブ担っていたら
データがめちゃめちゃになる場合もある。
VBAで変えてしまった値の、前戻しが出来ない。
    • good
    • 0

VariantやActiveCellのスペルミスがありますが


1が入力されると言う事なのでそこはスルーして

end ifの箇所が悪いようです。

end if
offset(0, 0).value = "1"
 ↓
Else
.Offset(0, 0).Value = "1"
End If
のようにして下さい。
    • good
    • 0

With内をよく見てください!



「.」が抜けてます

.Offset(0,-1).Value*****


となります
    • good
    • 0

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