• ベストアンサー

EXCEL VBA

EXCEL VBAで空白行が現れたら「小計」の文字を入力したいと思い以下のように記述しましたが、うまくいきません。どこがおかしいのか教えてください。 宜しくお願いします。 Sub write小計() Dim i As Integer Dim rowcnt As Integer rowcnt = Cells(1, 1).CurrentRegion.Rows.Count Range("B1").Select For i = 1 To rowcnt If Cells(i, 2).Value = "" Then Value = "小 計" ActiveCell.Offset(1).Select Next i End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

If Cells(i, 2).Value = "" Then Value = "小 計" これは If trim(Cells(i, 2).Value) = "" Then Cells(i, 2).Value = "小 計" としたほうがいいですね。 回答するを 押したときに 戻ると したのですが、 なぜか 投稿されてしまいましたね。 修正しておきます。

butaichi
質問者

お礼

ありがとうございます。うまくいきました。

その他の回答 (4)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

#4です。 空白行が現れたら、「小計」の文字を入力、 ということでしたらこっちが近いのかな・・・ Option Explicit Sub write小計() Dim lngRow As Long  lngRow = Cells(1, 1).CurrentRegion.Rows.Count + 1  Cells(lngRow, 1).Value = "小 計" End Sub

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.4

こんにちは。 × If Cells(i, 2).Value = "" Then Value = "小 計" ○ If Cells(i, 2).Value = "" Then Cells(i, 2).Value = "小 計" ですね。 このコードだと、すべての行のB列に「小計」が入りますが、これでいいのでしょうか。

noname#4564
noname#4564
回答No.3

[添削例] Public Sub UwaWriteTypo() Dim i As Long With Application.ActiveSheet For i = 1 To .UsedRange.Rows.Count If Len(.Cells(i, 2).Value) = 0 Then .Cells(i, 2).Value = "小 計" End If Next i End With End Sub

butaichi
質問者

お礼

ありがとうございます。うまくいきました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

If Cells(i, 2).Value = "" Then Value = "小 計" これは If trim(Cells(i, 2).Value) = "" Then Value = Cells(i, 2)."小 計" としたほうがいいですね。