我有一个 MonthView 和 DTPicker 的用户窗体,单击某些单元格时将填充该窗体。
我将表单直接放置在第一个单元格的下方。
我希望它位于我告诉它激活的每个活动单元格的正下方。
我的激活代码来定位用户表单:
Private Sub UserForm_Activate()
With frmCalendar
.Top = Application.Top + 340
.Left = Application.Left + 330
End With
End Sub
我的工作表选择更改代码,它将在单击某些单元格时启动用户表单:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("H10,H15")) Is Nothing Then
frmCalendar.Show
End If
End Sub
我知道有一些插件可以帮助执行此操作,但我想弄清楚如何在不使用插件的情况下将用户表单放置在上述单元格(H10、H14、H15)的正下方。
我更改了激活子代码
Private Sub UserForm_Activate()
With frmCalendar
.Top = ActiveCell.offset(31).Top
.Left = ActiveCell.offset(1).Left
End With
End Sub
这会将其稍微移动到单元格的下方和右侧,但是当我在另一个单元格上尝试它时,它会进一步向下移动,但向右保持相同的距离。这还是很乱。
有没有办法使用这些方法将此表单直接放置在 ActiveCell 下方?
您正在使用正确的事件宏。我在工作表中放置了一个文本框并使用此宏
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As Shape
Set s = ActiveSheet.Shapes(1)
s.Top = ActiveCell.Offset(1, 1).Top
s.Left = ActiveCell.Offset(1, 1).Left
End Sub
我可以让文本框移动到活动单元格的右侧和正下方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)