我有一个应该在SHEET1上运行的宏。然后,我有另一个工作表(SHEET2),它持有一个按钮供用户单击,以便能够运行宏。我的问题是,我在我的按钮中分配了宏,但是什么都没有发生。我尝试添加这一行Sheet1.Range("A2:A" & lastrow),但是宏停止并完全完成任务。我的密码有什么问题吗?请帮帮忙。
Sub DC1()
Dim lastrow&, rng1 As Range, rng2 As Range
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Set rng1 = Range("A2:A" & lastrow).SpecialCells(xlCellTypeConstants)
Set rng2 = rng1.Offset(0, 6)
rng2.Value = "=AVERAGE(RC[-6]:RC[-2])"
Set rng2 = rng1.Offset(0, 7)
rng2.Value = "=SUM(RC[-5]:RC[-1])*0.5"
Set rng2 = rng1.Offset(0, 9)
rng2.Value = "=CONCATENATE(RC[-9],RC[-8],RC[-7],RC[-6],RC[-5],RC[-4])"
End Sub发布于 2014-07-20 13:49:36
有两件事:
Sheet2中的一个按钮调用的,所以范围是从该工作表中实例化的,而不是Sheet1。.FormulaR1C1表示法公式,则使用R1C1而不是.Value。下面是您的代码的固定版本。
Sub DC1()
Dim WS1 As Worksheet
Dim LastRow As Long, Rng1 As Range, Rng2 As Range
Set WS1 = ThisWorkbook.Sheets("Sheet1")
With WS1
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("A2:A" & LastRow).SpecialCells(xlCellTypeConstants)
Set Rng2 = Rng1.Offset(0,6)
Rng2.FormulaR1C1 = "=AVERAGE(RC[-6]:RC[-2])"
' ... Other code.
End With
End Sub如果这有帮助的话请告诉我们。
https://stackoverflow.com/questions/24850968
复制相似问题