Vba 要在其他工作表上运行的Excel宏
我有一个宏应该在SHEET1上运行。然后我有另一张表(SHEET2),其中有一个按钮供用户单击以运行宏。我的问题是,我在按钮中指定了宏,但什么也没发生。我尝试添加此行Vba 要在其他工作表上运行的Excel宏,vba,excel,Vba,Excel,我有一个宏应该在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 r
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
两件事:
Sheet2
中的按钮调用的,因此范围是从该工作表而不是Sheet1
实例化的R1C1
符号公式,请使用.FormulaR1C1
而不是.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
让我们知道这是否有用。@Nanashi-这让我想起了一些事情。