【发布时间】:2021-04-07 17:04:24
【问题描述】:
我正在从已放置在工作表单元格中的超链接运行宏。该宏要求用户从下表中选择一些单元格,然后将其转移到工作表上的另一个位置。问题是单击超链接会清除用户的选择,而是选择超链接的单元格。
我想做的事:让用户选择单元格,点击超链接,并能够通过宏引用选择范围。
备选方案 1:我之前实现过,但不得不将其删除:创建一个链接到宏的形状,因此用户在单击形状时不会清除选择...
这样做的问题是工作表是自动生成的并且非常复杂。当用户操作位于形状上方的行和表格时,我无法保持形状在工作表中的位置。因此,该形状要么变形,要么失去其位置并进入外太空(或出现在其他桌子的中间)。即使像这样固定形状位置也会发生这种情况:
Set sh = ws.Shapes.AddShape(msoShapeRoundedRectangle, l, t, w, h) 'Non-KtCpl
With sh
sh.ShapeStyle = msoShapeStylePreset40
sh.OnAction = "'macroName """ & ws.name & """, ""shapeName""'"
sh.Placement = 1
End With
位置没有得到维持。
备选方案2:用户使用多选输入在点击超链接后选择范围,即:
Application.InputBox("Please select the range from the sheet", Title:="Select Range", Type:=8)
备选方案 2 可行,但我真的很想知道我最初的问题是否可行。
谢谢!
【问题讨论】: