gpt4 book ai didi

vba - 为每个单击的 ActiveCell 放置不同的用户窗体

转载 作者:行者123 更新时间:2023-12-04 20:16:15 25 4
gpt4 key购买 nike

我有一个 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

结束子

这会将其移动到单元格的下方和右侧,但是当我在另一个单元格上尝试时,它实际上会向下移动,但向右保持相同的距离。这仍然是一团糟。有没有办法使用这些方法将这个表单直接定位在 ActiveCell 下方?

最佳答案

您正在使用正确的事件宏。我在工作表中放置了一个 TextBox 并使用此宏

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

我可以让 TextBox 向右移动到事件单元格的下方。

关于vba - 为每个单击的 ActiveCell 放置不同的用户窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com