如何在VBA Excel中将数据格式化为可变大小的表格?

ruarlubt  于 2023-01-10  发布在  其他
关注(0)|答案(2)|浏览(158)

我已经将数据加载到Excel中,并希望使用传递工作表和行数的函数来设置表中数据的格式。
目前我有

Sub FormatTable(workingSheet, N)
        workingSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$I$90"), , xlYes).Name = "Vari Table"
End Sub

表的大小被硬编码为90。我如何将它设为N,即我传递给函数的数字。转义90并用N替换它是行不通的。

7ivaypg9

7ivaypg91#

Sub FormatTable(workingSheet, N)
        workingSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$I$" & N), , xlYes).Name = "Vari Table"
End Sub
szqfcxe2

szqfcxe22#

我会像这样改进你的程序:

Public Function insertTable(ws As Worksheet, numberOfRows As Long, nameOfTable As String) As ListObject
    Dim rg As Range
    Set rg = ws.Range("$A$1:$I$" & numberOfRows)
    
    Dim lo As ListObject
    Set lo = ws.ListObjects.Add(xlSrcRange, rg, , xlYes)
    
    lo.Name = nameOfTable
    
    Set insertTable = lo
End Function

您问题的基本解决方案:你必须用一个字符串来添加数字。

    • 重要提示**:始终通过引用工作表本身对区域使用 * explicit * 引用。否则,将引用活动工作表,而该工作表不需要是您传递给函数的工作表。在这种情况下,您的当前代码将引发错误。

这个函数返回创建的ListObject--以防您需要它来执行进一步的操作。

相关问题