我有一个函数试图将当前活动工作表(“Sheet1”)更改为(Sheet2),然后为Sheet2中的单元格赋值。
但是,ActiveSheet.name不会更改,并且分配失败。看到代码片段。该函数从sheet1调用。
Dim oldwksheet as String
oldwksheet = ActiveSheet.Name 'value is Sheet1
Sheets("Sheet2").Activate
Sheets("Sheet2").Select
oldwksheet = ActiveSheet.Name 'value still is Sheet1"
Sheets("Sheet2").Range("F2") = Now() 'this fails.
end function
为什么呢?我究竟做错了什么。
答案 0 :(得分:0)
我无法说出原因,但您可以使用功能
假设您的功能以" MyFunction"命名。然后在相关的工作表代码窗格中放入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then If Left(Target.Formula, 12) = "=MyFunction(" Then Sheets("Sheet2").Range("F2") = Now()
End Sub
这样,只要在相关工作表的任何单元格中键入=MyFunction()
,当前日期和时间就会放在Sheet2的单元格F2中