VBA Access使用突出显示的字段

时间:2016-01-28 08:59:00

标签: vba ms-access

在当前的访问数据库中,用户希望使用鼠标突出显示列中的特定范围的单元格,并在vba脚本中使用此选择。 (例如,他们选择一个范围 - > vba脚本使用某个值填充此范围)

我们的问题是:我们如何在VBA中定义此选定范围?有很多示例可以使用VBA到HIGHLIGHT单元格,但不能使用如何在Access内部的VB脚本中使用突出显示的范围。

这可能吗? 如果是这样,我们如何解决这个范围?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

数据表视图(或表/查询)中的表单具有properties以获取所选范围。以下内容主要是从在线帮助中复制的:

Dim frm As Form
Dim lngNumRows As Long
Dim lngNumColumns As Long
Dim lngTopRow As Long
Dim lngLeftColumn As Long
Dim strMsg As String

' Datasheet that has the focus
Set frm = Screen.ActiveDatasheet

' Number of rows selected.
lngNumRows = frm.SelHeight

' Number of columns selected.
lngNumColumns = frm.SelWidth

' Topmost row selected.
lngTopRow = frm.SelTop

' Leftmost column selected.
'** Note: for me, this is always the actual left column + 1 **
lngLeftColumn = frm.SelLeft

' Display message.
strMsg = "Number of rows: " & lngNumRows & vbCrLf
strMsg = strMsg & "Number of columns: " & lngNumColumns & vbCrLf
strMsg = strMsg & "Top row: " & lngTopRow & vbCrLf
strMsg = strMsg & "Left column: " & lngLeftColumn
MsgBox strMsg, vbInformation

在我的Access 2010中,.SelLeft总是太高1.所以如果我的选择从第一列开始,它会返回2.不确定它是否应该这样做。

注意:当选择带有记录选择器的记录时,.SelTop.SelHeight也适用于表单视图中的连续表单。