gpt4 book ai didi

excel - 如何在 VBA 窗体上显示 Excel 的一部分

转载 作者:行者123 更新时间:2023-12-01 21:19:23 28 4
gpt4 key购买 nike

我有一个 .csv 格式的文件,从 A-S 列,它有一些记录,例如表格。我的完整程序将插入/删除/删除/添加一些行、列和编辑单元格值等。我设法编写了我需要的所有操作的代码,现在我正在尝试将其与 GUI 集成。

我想要的是显示从 Ax1 到 VBA 用户表单上有记录的最后一列的单元格。我怎样才能做到这一点?

*ps:再次强调,我的文件格式是 .csv,并且我使用的是 Excel 2007

最佳答案

您可以使用多列列表框来显示数据。

逻辑

  1. 导入临时表中的文本 (Csv) 文件
  2. 在多列列表框中显示数据
  3. 删除用户表单卸载事件中的临时表

导入临时表中的文本 (Csv) 文件

Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet

Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")

wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)

Set wsTemp = ActiveSheet

wbTemp.Close SaveChanges:=False
End Sub

现在您可以在多列列表框中显示该数据。

在多列列表框中显示该数据

我以 3 列和最多 20 列为例。根据情况进行更改

Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet

Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")

wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)


Set wsTemp = ActiveSheet

wbTemp.Close SaveChanges:=False

With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub

屏幕截图

enter image description here

删除用户表单卸载事件中的临时表

要删除临时表,请在代码顶部声明 wsTemp ,以便您可以在 UserForm_QueryClose 事件中访问它。请参阅这个完整的示例

Option Explicit

Dim wsTemp As Worksheet

Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook


Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")

wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)


Set wsTemp = ActiveSheet

wbTemp.Close SaveChanges:=False

With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.DisplayAlerts = False
wsTemp.Delete
Application.DisplayAlerts = True
End Sub

HTH

关于excel - 如何在 VBA 窗体上显示 Excel 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527540/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com