如何编写通用类模块/自定义函数加载Excel数据,无需逐个定义表头且可复用?
问题:动态加载Excel数据到Collection,无需逐个定义类字段
我需要把多组Excel数据读取到Collection中,但目前必须在类模块里逐个定义工作表的列字段才能加载数据。随着列字段持续新增,每次手动添加字段的操作十分繁琐。
现有类模块代码(clsUtil)
Option Explicit Public COL_ID As Integer Public PCT_GRTHAN As Double Public PCT_LESSTHAN_EQUAL As Double Public TIME_BUCKET As String Public NO_OF_GROUPS As Integer Public sum As Integer Public PCT As Double
现有主程序代码
Sub UtilProfReport() Dim sh As Worksheet Dim row As Long Dim col3 As New Collection Dim rg As Range Set rg = Sheets("Sheet1").Range("A1").CurrentRegion Dim i As Long, UtilProf As clsUtil For i = 2 To rg.Rows.Count If rg.Cells(i, 1).Value > 0 Or i = 1 Then Set UtilProf = New clsUtil UtilProf.COL_ID = rg.Cells(i, 1).Value UtilProf.PCT_GRTHAN = rg.Cells(i, 2).Value UtilProf.PCT_LESSTHAN_EQUAL = rg.Cells(i, 3).Value UtilProf.TIME_BUCKET = rg.Cells(i, 4).Value UtilProf.NO_OF_GROUPS = rg.Cells(i, 5).Value UtilProf.sum = rg.Cells(i, 6).Value UtilProf.PCT = rg.Cells(i, 7).Value col3.Add UtilProf End If Next i Worksheets.Add Set sh = ActiveSheet sh.Range("A1").Value = "UTIL" sh.Range("A2").Value = ">" sh.Range("B2").Value = ChrW(&H2264) sh.Range("C2").Value = "# Groups" sh.Range("D2").Value = "%" ActiveWindow.DisplayZeros = False sh.DisplayPageBreaks = False With Application .ScreenUpdating = False .EnableAnimations = False End With With sh.Range("A1:D1") .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True .Interior.Color = 15849925 End With sh.Range("A2:D2").Interior.Color = 14277081 Dim UtilProfout As clsUtil For i = 1 To col3.Count row = i + 2 With sh Set UtilProfout = col3(i) .Cells(row, 1).Value = UtilProfout.PCT_GRTHAN .Cells(row, 2).Value = UtilProfout.PCT_LESSTHAN_EQUAL .Cells(row, 3).Value = UtilProfout.NO_OF_GROUPS .Cells(row, 4).Value = UtilProfout.PCT End With Next i End Sub
预期输出
生成的工作表样式为:首行合并单元格显示"UTIL",背景色为深灰蓝色;第二行表头依次为">"、"≤"、"# Groups"、"%",背景色为浅灰蓝色;下方为对应的数据行,不显示零值,无分页符。
需求
求一个通用的类模块或自定义函数,能够自动加载Excel工作表的原始数据到Collection,无需手动逐个定义表头字段,且该工具可复用在同一工作簿的其他工作表上(类似通用读取文件的函数逻辑)。
内容的提问来源于stack exchange,提问作者yywong
相关产品推荐
相关产品推荐

