我的一般想法是能够将数据(单元格范围)移动到侧面(仍然可以访问和看到),以便以后调用(多次计算)。
-例如1:A1:E5包含数据(文本和数字)-被宏移动。
-Eg2:A1:E17,如上一个下一个可用空间。
-Eg3:A1:E13,位于下一个可用空间上方。
我希望能够随时调用特定的数据范围,希望通过下面的宏实现我的目标:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Target.Range.Address = "$U$4" Then
Range(ActiveCell, ActiveCell.Offset(300, 5)).Select
$$$COPY PASTE CODE PART $$$
Exit Sub
End If
End Sub
我为此目的使用自引用超链接,该超链接在被移动后会停止工作,这就是我所在的位置。为了帮助它正常工作,我认为我只能使用“目标范围行4”,但这似乎也不起作用。 任何帮助表示赞赏。
答案 0 :(得分:0)
我相信这会满足您的需求。 在电子表格(下面的屏幕快照)中,在数据左侧(单元格B4,B4)输入您希望存档保存的位置。在单元格C4,D4和E4中输入方案数据。要将数据复制到K1存档中,请将光标置于B4(“ K1”所在的位置)并运行Scenarios_Record()代码。
如果要检索场景,请将光标放在定义数据所在位置的单元格中(例如B4或B5),然后运行Scenarios_Retreive()。
Sub Scenarios_Record()
' Copies scenario to the archive
Dim strTarget As String, intNbrCells As Integer
intNbrCells = 3
' Target cell
strTarget = ActiveCell.Value
Debug.Print strTarget
Debug.Print Range(strTarget).Value
For i = 1 To intNbrCells
Range(strTarget).Offset(0, i - 1).Value = ActiveCell.Offset(0, i).Value
Next i
End Sub
Sub Scenarios_Retrieve()
' Copies scenario from the archive
Dim strTarget As String, intNbrCells As Integer
intNbrCells = 3
' Target cell
strTarget = ActiveCell.Value
Debug.Print strTarget
Debug.Print Range(strTarget).Value
For i = 1 To intNbrCells
ActiveCell.Offset(0, i).Value = Range(strTarget).Offset(0, i - 1).Value
Next i
End Sub