MS Excel:根据输入变量生成一个行数的表格

MS Excel:根据输入变量生成一个行数的表格

因此,我想在 excel 中制作一个类似 matlab/r 的工具,以模拟比更常见的 excel 工作表应用程序通常包含的更多代码驱动的计算

本工作簿应包含:

  1. 输入表
  2. 计算表
  3. 输出表

我尝试过 VBA,但我不喜欢它,而且我也没有用它编码的经验(它需要花费太长时间才能得到我想要的结果)

因此,我的下一次尝试是直接在 Excel 中实现它,而无需使用 VBA。

为了实现这一目标,我需要:

  1. 在计算表中创建一个表,其行数取决于用户在输入表中给出的输入变量。
  2. 根据用户的输入变量填充该表的单元格,以及一些关于在这些单元格中输入什么内容的预定义公式

例如用户输入 1 = 4,用户输入 2 = 6

代码 =>> 创建有 4 行 4 列的表格,从最左边/顶部单元格中的 6 开始,每列乘以 2,然后在转到下一行之前减去 2 并执行相同操作,等等。

因此,在这种情况下,输出将是

6 12 24 48 

4 8 16 32

2 4 8 16

0 0 0 0

举个例子

如果您事先知道行数/列数,您可以轻松地进行编程,但如果您不知道,而又想创建这样的表格,该怎么办?

这有可能吗?我不希望最终用户做除了提供输入值之外的任何事情。

答案1

VBA 解决方案。假设输入在 B1 和 B2

Public Sub CreateTable()

    Dim rownum, colnum, startnum, z, multi As Integer
    rownum = Range("B1").Value  'number of rows
    colnum = Range("B1").Value  'number of columns
    
    startnum = Range("B2").Value  'starting value
    
    z = 3  'third row.
    
    For x = 1 To rownum
        multi = 1   'use to multiply the starting value
        For y = 67 To 66 + colnum  '67 represents code for C
            
            Range(Chr(y) & z).Value = startnum * multi 'Set the value on the table
            multi = multi * 2
            
        Next y
        z = z + 1
        startnum = startnum - 2
    Next x

End Sub

演示

相关内容