• 締切済み

VBAの修正を求められる

今、このような式を作成しています。 Dim gyou As Integer Dim 金額欄 As String hyouji = "" For gyou = 2 To 100 金額欄 = Range(gyou, 5).Value 最後の行の式が「デバック」などと表示されてしまい 修正を求められています。 何が原因なのかわかりかねます。 教えていただければ助かります。

みんなの回答

  • f272
  • ベストアンサー率46% (8531/18261)
回答No.5

金額欄 * 0.08というように計算をするのなら Dim 金額欄 As String ではなくて Dim 金額欄 As Double とすべきです。

  • kon555
  • ベストアンサー率51% (1845/3565)
回答No.4

 変数を使っているので、セルの指定方法が違います。  For gyou = 2 To 100、という事なので2行目から100行まで処理したいのだと思いますが、この場合のセルの指定方法は以下のようにしないとエラーになります。 『Range("E" & gyou)』または『Cells(gyou, 5)』

  • f272
  • ベストアンサー率46% (8531/18261)
回答No.3

金額欄がstring ならRange(gyou, 5).text

ayumcom
質問者

補足

回答をいただき有難うございます。 修正しました。しかし、次のIFではじまる構文が 型が異なるということでまたエラーが出ました。 Dim gyou As Integer Dim 金額欄 As String moji = "" For gyou = 2 To 100 金額欄 = Cells(gyou, 5).Value 【型が違う】 If Cells(gyou + 1, 5) = 金額欄 * 0.08 Then moji = "軽8%" & Cells(gyou - 1, 3) Else: hyouji = Cells(gyou - 1, 3) End If Next gyou End Sub

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.2

(行,列)で指定したいのでしたらRangeではなく 金額欄 = Cells(gyou, 5).Value です。

  • GENESIS
  • ベストアンサー率42% (1201/2809)
回答No.1

Forに対するnext 文が無さげなンデスが。

関連するQ&A

専門家に質問してみよう