Forms 以Excel格式显示所选列
您知道是否可以在Excel中创建一个表单,用户可以在其中选择需要显示的列 例如,我有一个非常广泛的excel文件(超过100列) 一次我只需要打开某些列(例如A、B、e、H、O),另一次打开其他列(例如C、e、H、J) 我认为,当与更多的人一起处理文件时,选择指定列的表单会更方便用户,但我从未在Excel中创建过一个表单Forms 以Excel格式显示所选列,forms,vba,excel,Forms,Vba,Excel,您知道是否可以在Excel中创建一个表单,用户可以在其中选择需要显示的列 例如,我有一个非常广泛的excel文件(超过100列) 一次我只需要打开某些列(例如A、B、e、H、O),另一次打开其他列(例如C、e、H、J) 我认为,当与更多的人一起处理文件时,选择指定列的表单会更方便用户,但我从未在Excel中创建过一个表单 你知道怎么从这件事开始吗?首先,是否可以在Excel中创建这样一个表单?编辑以正确处理上一个OP在评论中的请求 您可以添加一个UserForm,以便在每次相关工作表激活时启动
你知道怎么从这件事开始吗?首先,是否可以在Excel中创建这样一个表单?编辑以正确处理上一个OP在评论中的请求 您可以添加一个
UserForm
,以便在每次相关工作表激活时启动
添加一个带有一个列表框(ListBox1
)和一个按钮(CommandButton1
)的UserForm
(称为UserForm1
)
将ListBox1
MultiSelect
属性设置为fmmultiselectmuli
然后将此代码添加到UserForm1
code窗格:
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Long
With Me.ListBox1
If .ListCount > 0 Then
ActiveSheet.UsedRange.EntireColumn.Hidden = True
For i = 0 To .ListCount - 1
If .Selected(i) Then Columns(.List(i, 0)).Hidden = False
Next
ActiveSheet.UsedRange.Columns(1).Select
End If
End With
Me.Hide
End Sub
Private Sub UserForm_Initialize()
Dim col As Range
Dim iCol As Long
With ActiveSheet
ReDim Data(1 To .UsedRange.Columns.Count, 1 To 2)
For Each col In .UsedRange.Columns
iCol = iCol + 1
Data(iCol, 1) = Split(col.Address(, False), "$")(0)
Data(iCol, 2) = .Cells(2, col.Column).Value
Next
End With
With Me.ListBox1
.ColumnCount = 2
.ColumnWidths = "0;30"
.List = Data
End With
End Sub
然后将此代码添加到工作表代码窗格中
Private Sub Worksheet_Activate()
With UserForm1
.Show
End With
Unload UserForm1
End Sub
一切皆有可能!首先,我要为自定义复选框和标签创建一个类,以便在运行时添加到UF中,剩下的应该很简单!;)嗨,这是可能的,但真的有必要吗?你就不能多出几张纸,为不同的用户显示不同的输出吗?非常感谢,它的工作原理和我需要的完全一样。还有一个问题-列表框中的列被命名为A、B、C、D等。您知道如何从第二行的单元格值中命名它们吗?不客气。请参阅编辑后的答案,了解第2行的值。是否可以再次检查代码?在更改后运行代码时,出现“运行时错误'13'类型不匹配”错误消息。谢谢你看编辑的代码。您必须1)用两列设置列表框2)并用工作表列索引填充第一列,用相应的第二行内容填充第二列3)在按钮处隐藏第一列(
ColumnWidth=0
)4)单击使用列表框第一列内容检索要隐藏索引的列