Excel VBA : Create hierarchical list in form of "I-1, I-2, II-1, II-2" dynamically based on input

标签 excel vba

我想创建一个“I”列格式的动态编号列表,它将由 B1 和 B2 中的值生成:example picture

罗马数字和阿拉伯数字应该是动态的,基于 B1 和 B2 中的单元格值。我已经尝试过 VBA,但我无法计算出 for 循环来生成正确的结果。另外我不确定如何实现罗马数字。 到目前为止,这是我的代码:

Private Sub CommandButton1_Click()
Dim Roman_Number As Integer
Dim Arabic_Number As Integer

Roman_Number = Range("B1").Value
Arabic_Number = Range("B2").Value

For i = 0 To (Roman_Number - 1)
    Cells(i + 1, 5).Value = "I" & "-" & (i + 1)
    Next i 

End Sub

非常感谢您!

最佳答案

有一个生成罗马数字的工作表函数,您将需要嵌套循环,因此代码应如下所示:

Option Explicit
Sub Button1_Click()
    Dim Roman_Number As Integer
    Dim Arabic_Number As Integer
    Dim row As Integer
    Dim i As Integer
    Dim j As Integer
    
    Roman_Number = Range("B1").Value
    Arabic_Number = Range("B2").Value
    
    row = 1
    
    For i = 1 To Roman_Number
        For j = 1 To Arabic_Number
            Cells(row, 5).Value = WorksheetFunction.Roman(i) & "-" & j
            row = row + 1
        Next j
    Next i
End Sub

只要数字不是太大,整数就可以。

enter image description here

关于Excel VBA : Create hierarchical list in form of "I-1, I-2, II-1, II-2" dynamically based on input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74069722/

相关文章:

vba - 如何使用表 ListObject 而不是 "TableName"的 [[#Headers],[Column]] 表示法?

vba - UDF 在任何地方都返回相同的值

excel - Python Xlsx Writer - 将字符串写入新行

mysql - 使用分隔符将 SQL 数据拆分为 3 列

api - 如何使用 VBA 下载文件(无需 Internet Explorer)

regex - 使用正则表达式对值进行分组 regex

vba - 在vba中用破折号分隔字符

vba - 在 Access 中处理 Outlook MailItem 发送事件

vba - Powerpoint VBA - 为数据标签设置数据范围

vba - 比较excel中的两个单元格然后返回行