VBA窗体数据一键写入Excel并排序

需求: 将VBA窗体'AAA'中文本框'a'和文本框'b'的值依次填写到工作表'BBB'中,从B10单元格以下第一个空行开始填写,并根据C列数据降序排列。

**代码实现:**vbaPrivate Sub CommandButton1_Click() Dim ws As Worksheet Dim lastRow As Long Set ws = Sheets('BBB') lastRow = ws.Cells(ws.Rows.Count, 'B').End(xlUp).Row + 1 ws.Cells(lastRow, 'B').Value = TextBoxA.Value ws.Cells(lastRow, 'C').Value = TextBoxB.Value With ws.Sort .SortFields.Clear .SortFields.Add Key:=ws.Range('C10:C' & lastRow), SortOn:=xlSortOnValues, Order:=xlDescending .SetRange ws.Range('B10:C' & lastRow) .Header = xlYes .Apply End WithEnd Sub

代码解析:

  1. 获取目标工作表和起始行: - Set ws = Sheets('BBB'):将工作表'BBB'赋值给变量ws。 - lastRow = ws.Cells(ws.Rows.Count, 'B').End(xlUp).Row + 1:找到B列最后一个非空单元格的行号,加1得到数据写入的起始行号。

  2. 写入数据: - ws.Cells(lastRow, 'B').Value = TextBoxA.Value:将文本框'a'的值写入B列对应单元格。 - ws.Cells(lastRow, 'C').Value = TextBoxB.Value:将文本框'b'的值写入C列对应单元格。

  3. 排序数据: - With ws.Sort ... End With:使用With语句简化排序代码。 - .SortFields.Clear:清除之前的排序设置。 - .SortFields.Add Key:=ws.Range('C10:C' & lastRow), SortOn:=xlSortOnValues, Order:=xlDescending:设置排序关键字为C列,按值降序排列。 - .SetRange ws.Range('B10:C' & lastRow):设置排序范围。 - .Header = xlYes:指定第一行为标题行。 - .Apply:应用排序设置。

使用方法:

  1. 将以上代码复制到VBA窗体'AAA'的代码模块中。2. 将代码中的'CommandButton1'替换为实际按钮名称。3. 点击按钮即可将文本框数据写入Excel并按要求排序。

总结:

通过以上代码,可以方便地实现VBA窗体数据录入Excel并自动排序,提高数据处理效率,减少手动操作的繁琐。

VBA窗体数据排序录入Excel:文本框内容按降序写入工作表

原文地址: https://www.cveoy.top/t/topic/4or 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录