我试图编写一个简单的VBA宏,该宏将接受活动单元格的列和用户的输入,以便在一行中添加一系列单元格。通过将用户输入的整数添加到活动列,即end列,计算范围。问题是,当我运行它时,它会给我一个“编译错误:无效限定符”,并对‘总计’行感到愤怒。
这是我的密码。我刚开始学习VBA,但不可能是hard....right吗?
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
发布于 2017-08-03 16:38:07
看上去是语法错误。尝试将.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
属性返回range对象中的值。因此,在函数上使用它是没有意义的,如果您尝试使用它,会导致excel抛出和出错。尝试将month
变量设置为值而不是范围也是没有意义的,因为这只会使它成为一个数组。如果希望month
是一个数组,则需要将其设置为变体而不是范围。
有关.value
属性的更多信息,请参见以下链接:https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-value-property-excel
https://stackoverflow.com/questions/45490000
复制相似问题