如何“捕捉”到RefEdit选择的顶部

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何“捕捉”到RefEdit选择的顶部相关的知识,希望对你有一定的参考价值。

我正在使用VBA在Excel 2016中开发用户窗体。

我在userform上有2个RefEdit控件。一旦用户在其中一个RefEdit控件中进行选择,然后输入另一个RefEdit控件进行下一个选择,我希望电子表格“捕捉”到另一个RefEdit中指定的选择的顶部(这使得当选择很长时,可用性的巨大差异)。

注意:我不希望在捕捉到顶部时更改工作表中的活动单元格。

下面是我尝试过的一些方法的操作代码(除了一个注释外)。 Application.Goto方法似乎正是我正在寻找的,但是,目前还没有正常工作。

Private Sub RefEdit1_Enter()
    If Len(Trim(RefEdit1.value)) = 0 And Len(Trim(RefEdit2.value)) > 0 Then
        Application.Goto Reference:=Range(RefEdit2).Offset(0, 1), Scroll:=True
        'Range(RefEdit2).Offset(0, 1).Select
        'Range(RefEdit2).Cells(1, 1).Select
        'SendKeys "{ESC}"
        'Application.CutCopyMode = False
    End If
End Sub

Private Sub RefEdit2_Enter()
    If Len(Trim(RefEdit2.value)) = 0 And Len(Trim(RefEdit1.value)) > 0 Then
        Application.Goto Reference:=Range(RefEdit1).Offset(0, 1), Scroll:=True
        'Range(RefEdit1).Offset(0, 1).Select
        'Range(RefEdit1).Cells(1, 1).Select
        'SendKeys "{ESC}"
        'Application.CutCopyMode = False
    End If
End Sub

此代码不会创建任何错误消息,它根本无法执行。可能是因为没有与Range(RefEditi)规范相关联的工作表属性?如果是这样,那么捕获与RefEdit选择相关联的活动工作表的好方法是什么?

===============================================

我尝试使用此代码捕获活动的工作簿/表,但它使userform消失:

Private Sub RefEdit1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Set WBData = Application.ActiveWorkbook
    Set WSData = Application.ActiveWorksheet
End Sub

Private Sub RefEdit2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Set WBData = Application.ActiveWorkbook
    Set WSData = Application.ActiveWorksheet
End Sub

用户形式的问题是否与背景活动允许问题相关?

答案

资格的例子,包括用户形式的无模式调用:

public ws as worksheet

sub launch_userform()
    set ws = activesheet
    userform1.show vbmodeless
end sub

重要的是要注意这是在userform之前调用的,因为当useform是焦点时没有“活动”表。


edit1:会给出一个更好的例子......

在名为“moo”的模块中:

Option Explicit

Public ws As Worksheet

Sub fdsa()
    Set ws = ActiveSheet
    Application.Run ("cat.mouse")
End Sub

在模块“cat”中:

Option Explicit

Private Sub mouse()
    ws.Cells(1, 1).Value = 2
End Sub

以上是关于如何“捕捉”到RefEdit选择的顶部的主要内容,如果未能解决你的问题,请参考以下文章

检测 UITableView 部分标题何时捕捉到屏幕顶部

将动态视图捕捉到屏幕顶部、底部或中间的统一行为

如何在地图片段 API v2 布局顶部添加按钮

没有滚动内容时如何下拉协调器布局

二十异常处理

如何在 BottomSheetDialogFragment 顶部显示另一个片段