- ベストアンサー
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
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
If Cells(i, 2).Value = "" Then Value = "小 計" これは If trim(Cells(i, 2).Value) = "" Then Cells(i, 2).Value = "小 計" としたほうがいいですね。 回答するを 押したときに 戻ると したのですが、 なぜか 投稿されてしまいましたね。 修正しておきます。
その他の回答 (4)
- happypoint
- ベストアンサー率36% (521/1422)
#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)
こんにちは。 × If Cells(i, 2).Value = "" Then Value = "小 計" ○ If Cells(i, 2).Value = "" Then Cells(i, 2).Value = "小 計" ですね。 このコードだと、すべての行のB列に「小計」が入りますが、これでいいのでしょうか。
[添削例] 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
お礼
ありがとうございます。うまくいきました。
- taknt
- ベストアンサー率19% (1556/7783)
If Cells(i, 2).Value = "" Then Value = "小 計" これは If trim(Cells(i, 2).Value) = "" Then Value = Cells(i, 2)."小 計" としたほうがいいですね。
お礼
ありがとうございます。うまくいきました。