VBAmacros编译错误
我正在尝试编写一个简单的VBAmacros,它将采用活动单元格的列和用户的input将一行单元格的范围添加到一起。 范围是通过将用户input的整数添加到活动列并且是结束列来计算的。 问题是,当我运行它时,它给了我一个“编译错误:无效的限定符”,并在“全部”行中生气。
这是我的代码。 我刚刚开始在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
看起来像一个语法错误。 尝试删除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
如果你想把一个范围的值变成一个variables,你把.value
的范围,而不是variables。 例如:
x = cells(1,2).value
.value
属性返回范围对象中的值。 所以在函数上使用它是没有意义的,如果你尝试的话会导致excel抛出错误。 尝试将month
variables设置为一个值而不是一个范围也没有意义,因为这只会使它成为一个数组。 如果你想要month
是一个数组,你会想将它设置为一个变体,而不是一个范围。
有关.value
属性的更多信息,请参阅此链接: https : //msdn.microsoft.com/en-us/vba/excel-vba/articles/range-value-property-excel