有没有一种快速的方法来添加滚动条多个文本框?

因为我的项目中的单元格包含太多的数据,所以我不得不插入带有滚动条的文本框来查看所有数据(它们链接到电子表格后面的单元格)。 是否有任何快速的方法来做一个1000列logging相同的事情,或者我将不得不手动通过并将文本框链接到特定的单元格? 有更快的方法吗?

此外,如果问题来了,是对原始问题的答复,我需要它使用原始ID(我已经使用了自动IDS,这可以在电子表格中看到)。 任何build议?

慢慢地,我在Excel和VBA上越来越好,但是我有时需要一只手^ _ ^

我附上了电子表格,其中包含我制作的2个logging的示例。 最后一张纸将有1000个logging。 (请下载电子表格并在Excel中打开)

链接到电子表格

一些东西:

  1. 您应该将单元格格式更改为“顶部alignment”单元格中的文本。 这将导致单元格在查询单元格中显示长文本的第一行。

  2. 为了不添加单个button来通过电子邮件发送当前选中的行,而不是使用单元格中的“发送电子邮件”文本。 (使用开发人员选项卡的function区上的插入(您必须更改Excel选项以显示开发人员选项卡)。

  3. 发送电子邮件的代码可能会更好,如果它更新了发送date的新列,并且如果它已经发送,它可以提示用户确认。

    如果不是isempty(单元格(r,ColNumberWithSentdate)),那么如果vbno = msgbox(“你确定要发送电子邮件吗?”,VbYesno)然后
    如果结束,退出子结束

  4. 您添加的所有文本框确实会减慢电子表格的速度。 为什么不只在桌子上方有一排高的filter。 高行将显示表中当前所选行的数据。 你的表格行可能不那么高。

  5. 添加一个文本框。 使用ALT +单击并拖动来调整文本框的大小以准确地适应单元格。 将命名范围区域中的文本框的名称更改或查看为“TextBoxQuery”。

  6. 添加代码以更改汇总行中的文本

    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 
  7. 你甚至可以允许用户编辑高行中的文本,并添加一个button来保存他们input的更改:

A.在标有“SAVE”的汇总行中添加一个ACTIVEXbutton(然后您可以在sheet模块中为button编辑vba)

B.在某个地方添加一个单元格,logging在汇总行中显示哪一行。

C.单击保存button时,编写代码将行中的所有值复制回logging的行。

请注意,如果用户删除表中的行或对表中的数据进行sorting,那么存储的行将是错误的。 因此,在复制数据之前,您可能需要检查行是否已经移动。 即检查一个KEY值(即永远不会改变的值)是两行中的首字母缩写。

 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