【发布时间】:2019-06-24 20:03:29
【问题描述】:
我正在尝试制作一个宏,该宏从我更新的另一张表中的固定单元格中获取数据并将数据输入到另一张表中。每天我将新数据放入源表中,它将作为当天数据(一行)传输到第二张表中。这要求我运行宏的原始单元格是固定的参考点。如何将活动单元格重置为我点击宏按键的单元格?
我尝试过 Startcell = activecell 或那种类型的东西,但它们没有产生结果。我不擅长 VBA,因此可能是格式错误导致此方法无法正常工作。
Sub Macro15()
'
' Macro15 Macro
'
' Keyboard Shortcut: Ctrl+Shift+Q
'
Sheets("MACRO (insert data)").Select
Range("G4:Q4").Select
Selection.Copy
Sheets("Jun-2019").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("MACRO (insert data)").Select
Range("W4:AG5").Select
Selection.Copy
Sheets("Jun-2019").Select
Range("C42").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("O10:Y10").Select
Selection.Copy
Startcell.Offset(0, 11).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
如果有人可以帮助我在“Range("O10:Y10").Select”和“Selection.Copy”之后将活动单元格返回到起始单元格,那就太好了。
【问题讨论】:
-
首先您需要捕获(最初)活动单元格。用变量做到这一点。在代码的末尾,您可以尽可能地执行
<your_variable_name>.Select相关:Avoid Activate/Select。您的宏实际上都需要选择任何内容,因此这是一个 X/Y 问题:您希望返回初始选择,但这只是因为您在运行时不必要地更改了选择:) -
感谢您的帮助。我现在正在尝试删除所有激活和选择,但是如何使用 Dim 将最初活动的单元格存储为变量?
-
Dim startRange as Range然后Set startRange = ActiveCell