【问题标题】:VBA Macro Compile ErrorVBA 宏编译错误
【发布时间】:2017-08-03 16:35:20
【问题描述】:

我正在尝试编写一个简单的 VBA 宏,该宏将采用活动单元格的列和用户的输入来在单行上添加一系列单元格。范围是通过将用户输入的整数添加到活动列(即结束列)来计算的。问题是当我运行它时它给了我一个“编译错误:无效的限定符”,并且对“总”行生气。

这是我的代码。我刚开始学习 VBA,但这不会那么难......对吧?

Sub Food()
Dim first As Variant
Dim last As Integer
Dim days As Integer
Dim month As Range
Dim total As Double
first = ActiveCell.Column
days = InputBox("Days in the month?")
last = first + days
Set month.Value = Range(Cells(first, 4), Cells(last, 4))
total.Value = WorksheetFunction.Sum(month)
Worksheets(1).Cells(1, 13).Value = total
End Sub

【问题讨论】:

    标签: vba excel sum range


    【解决方案1】:

    看起来像语法错误。尝试将.value 放在month 和total 上。

    Sub Food()
    Dim first As Variant
    Dim last As Integer
    Dim days As Integer
    Dim month As Range
    Dim total As Double
    first = ActiveCell.Column
    days = InputBox("Days in the month?")
    last = first + days
    Set month = Range(Cells(first, 4), Cells(last, 4))
    total = WorksheetFunction.Sum(month)
    Worksheets(1).Cells(1, 13).Value = total
    End Sub
    

    如果要将范围的值放入变量中,请将.value 与范围而不是变量放在一起。例如:

    x = cells(1,2).value
    

    .value 属性返回范围对象中的值。所以在函数上使用它是没有意义的,如果你尝试会导致excel抛出和错误。尝试将month 变量设置为值而不是范围也是没有意义的,因为这只会使其成为一个数组。如果您希望 month 成为一个数组,您可能希望将其设置为一个变体而不是一个范围。

    有关.value 属性的更多信息,请参阅此链接: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-value-property-excel

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 2021-10-28
      相关资源
      最近更新 更多