繁体   English   中英

在Excel中使用vba填充行x列设计的表格

[英]Populating a table for a row x column design using vba in Excel

我是在Excel中创建VBA的新手。 因此,我在基本方面苦苦挣扎。 我想创建一个VBA来填充与逐行统计设计相关的表。 例如,如果要为具有2行3列的逐列设计生成表,我的表将如下所示:

2 x 3桌

或者,如果我想使用VBA为3 x 2逐行设计创建表,则该表将如下所示:

3 x 2桌

依此类推

有人可以帮助我开发一个简单的VBA,在其中可以选择布局的行数和列数,然后使用VBA生成各自的表吗?

尝试代码:

Sub Test()

    Dim x As Long
    Dim y As Long
    Dim a() As Long
    Dim i As Long

    x = 2 ' columns
    y = 3 ' rows
    ReDim a(1 To x * y, 1 To 2)
    For i = 0 To x * y - 1
        a(i + 1, 1) = i Mod y + 1
        a(i + 1, 2) = i \ y + 1
    Next
    ThisWorkbook.Sheets(1).Cells(1, 1).Resize(x * y, 2).Value = a

End Sub

您需要遍历行和列以创建表。

这就是我的意思:

Dim row As Long
Dim column As Long
Dim end_row As Long
Dim end_col As Long
Dim wb As Workbook
Dim ws As Worksheet
'Dim index As Long

Set wb = Excel.Application.ThisWorkbook
Set ws = wb.Worksheet("worksheet name")

'alternatively, you can do this too if you prefer to use numbers
'Set ws = wb.Worksheet(index)

end_row = 3
end_col = 2

'this loop iterates over rows
For row = 1 To end_row
    'this loop iterates over columns
    For column = 1 To end_col
        'sets headers
        If row = 1 Then
            ws.Cells(row, 1).Value = "Column 1"
            ws.Cells(row, 2).Value = "Column 2"
        'puts row numbers in column 1
        ElseIf row > 1 Then
            ws.Cells(row, 1).Value = row
        End If 
            'puts column numbers in row 2
            ws.Cells(2, column).Value = column
    Next
Next

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM