有没有快速添加多个带滚动条的文本框的方法?
Is There A Fast Way To Add Multiple Text boxes With Scrollbars?
因为我项目中的单元格包含太多数据,所以我不得不插入带有滚动条的文本框以查看所有数据(它们 linked 到展开时位于它们后面的单元格sheet).有什么快速的方法可以在 1000 条记录的列上做同样的事情,还是我必须手动完成并 link 文本框到特定的单元格?有没有更快的方法?
此外,如果出现问题是对原始问题的回复,我需要它使用原始 ID(我使用了自动 IDS,可以在传播中看到sheet)。有什么建议吗?
慢慢地我在 excel 和 VBA 上变得更好了,但有时我需要帮助 ^_^
我已附上传播sheet,其中包含我制作的 2 条记录的示例。最后的 sheet 将有 1000 条记录。 (请下载传播sheet并在excel打开)
一些事情:
您应该将单元格格式更改为 "Top Align" 单元格中的文本。这将导致单元格在查询单元格中显示长文本的第一行。
与其在单元格中使用 "send email" 文本,不如添加一个按钮来通过电子邮件发送当前选定的行。 (在开发人员选项卡的功能区上使用插入(您必须更改 excel 选项以显示开发人员选项卡)。
发送电子邮件的代码如果用发送日期更新新列可能会更好,如果已经发送,它可以提示用户确认.
如果不是 isempty(cells(r, ColNumberWithSentdate) ) 那么
if vbno = msgbox ("Are you sure you want to send the email again?", VbYesno) then
退出子
万一
如果
结束
您添加的所有文本框确实减慢了电子表格的速度。
为什么不在带有过滤器的 table 上方的顶部放一个高大的行。 tall 行将显示 table 中当前选定行的数据。您的 table 行可能不会那么高。
添加单个文本框。
使用 ALT + 单击并拖动以调整文本框的大小以完全适合单元格。
将命名范围区域中的文本框名称更改或查看为"TextBoxQuery".
添加代码以更改摘要行中的文本
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Say the tall row is in row 2
If Target.Row <= 2 Then
Exit Sub
End If
Dim i As Integer
For i = 1 To 8
Cells(2, i) = Cells(Target.Row, i)
Next i
End Sub
您甚至可以允许用户编辑 tall 行中的文本并添加一个按钮来保存他们输入的更改:
一个。在标记为 "SAVE" 的摘要行中添加一个 ACTIVEX 按钮
(然后您可以在按钮的工作表模块中编辑 vba)
乙。在某处添加一个单元格,记录汇总行中显示的行。
摄氏度。单击保存按钮时,编写代码将行中的所有值复制回记录的行。
请注意,如果用户删除 table 中的一行或对 table 中的数据进行排序,则存储的行将是错误的。因此在复制数据之前,您可能希望检查该行是否已移动。即检查 KEY 值(即永不更改的值)是两行中的 saem。
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 8
Cells(Cells(1, 1).Value, i) = Cells(2, i)
Next i
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Say the tall row is in row 2
If Target.Row <= 2 Then
Exit Sub
End If
' Cell A1 is used to store which row is displayed
Cells(1, 1) = Target.Row
Dim i As Integer
For i = 1 To 8
Cells(2, i) = Cells(Target.Row, i)
Next i
End Sub
因为我项目中的单元格包含太多数据,所以我不得不插入带有滚动条的文本框以查看所有数据(它们 linked 到展开时位于它们后面的单元格sheet).有什么快速的方法可以在 1000 条记录的列上做同样的事情,还是我必须手动完成并 link 文本框到特定的单元格?有没有更快的方法?
此外,如果出现问题是对原始问题的回复,我需要它使用原始 ID(我使用了自动 IDS,可以在传播中看到sheet)。有什么建议吗?
慢慢地我在 excel 和 VBA 上变得更好了,但有时我需要帮助 ^_^
我已附上传播sheet,其中包含我制作的 2 条记录的示例。最后的 sheet 将有 1000 条记录。 (请下载传播sheet并在excel打开)
一些事情:
您应该将单元格格式更改为 "Top Align" 单元格中的文本。这将导致单元格在查询单元格中显示长文本的第一行。
与其在单元格中使用 "send email" 文本,不如添加一个按钮来通过电子邮件发送当前选定的行。 (在开发人员选项卡的功能区上使用插入(您必须更改 excel 选项以显示开发人员选项卡)。
发送电子邮件的代码如果用发送日期更新新列可能会更好,如果已经发送,它可以提示用户确认.
如果不是 isempty(cells(r, ColNumberWithSentdate) ) 那么 if vbno = msgbox ("Are you sure you want to send the email again?", VbYesno) then
退出子 万一 如果 结束
您添加的所有文本框确实减慢了电子表格的速度。 为什么不在带有过滤器的 table 上方的顶部放一个高大的行。 tall 行将显示 table 中当前选定行的数据。您的 table 行可能不会那么高。
添加单个文本框。 使用 ALT + 单击并拖动以调整文本框的大小以完全适合单元格。 将命名范围区域中的文本框名称更改或查看为"TextBoxQuery".
添加代码以更改摘要行中的文本
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Say the tall row is in row 2 If Target.Row <= 2 Then Exit Sub End If Dim i As Integer For i = 1 To 8 Cells(2, i) = Cells(Target.Row, i) Next i End Sub
您甚至可以允许用户编辑 tall 行中的文本并添加一个按钮来保存他们输入的更改:
一个。在标记为 "SAVE" 的摘要行中添加一个 ACTIVEX 按钮 (然后您可以在按钮的工作表模块中编辑 vba)
乙。在某处添加一个单元格,记录汇总行中显示的行。
摄氏度。单击保存按钮时,编写代码将行中的所有值复制回记录的行。
请注意,如果用户删除 table 中的一行或对 table 中的数据进行排序,则存储的行将是错误的。因此在复制数据之前,您可能希望检查该行是否已移动。即检查 KEY 值(即永不更改的值)是两行中的 saem。
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 8
Cells(Cells(1, 1).Value, i) = Cells(2, i)
Next i
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Say the tall row is in row 2
If Target.Row <= 2 Then
Exit Sub
End If
' Cell A1 is used to store which row is displayed
Cells(1, 1) = Target.Row
Dim i As Integer
For i = 1 To 8
Cells(2, i) = Cells(Target.Row, i)
Next i
End Sub