如何根据'n'作为单元格中的数字插入'n'行数

列a中有公司名单。 在b栏中,我有一个号码。 我需要创build一个列表,其中公司在列表中显示多次:

Company A 4 Company B 2 Company C 3 

我想要:

 Company A Company A Company A Company A Company B Company B Company C Company C Company C 

所以,这是一个“Create(n)Duplicates”function。

试试这个:

 Sub KopyKat() Dim N As Long, i As Long, K As Long Dim v As String, kk As Long, m As Long N = Cells(Rows.Count, "B").End(xlUp).Row K = 1 For i = 1 To N kk = Cells(i, "B").Value v = Cells(i, "A").Value For m = 1 To kk Cells(K, "C") = v K = K + 1 Next m Next i End Sub 

在这里输入图像说明

编辑#1:

macros很容易安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel使用macros:

  1. ALT-F8
  2. selectmacros
  3. 触摸RUN

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

macros必须启用这个工作!

我不确定这是否真的很简单/可行,只是根据你的列表来做公式或手动Excelfunction,所以这里是VBA程序来完成这个工作。

要使用此function,请在Excel中单击Alt + F11 。 转到插入>模块。 然后将其粘贴到模块中并运行(在调整了数据范围和表名称之后。

 Sub MakeList() Dim ws As Worksheet Set ws = Sheets("Sheet1") 'change to your sheet name With ws Dim c As Range For Each c In .Range("A1:A3") ' assumes list in cells A1-B3 .Range("D" & .Rows.Count).End(xlUp).Resize(c.Offset(, 1)).Value = c.Value 'builds list in column C Next End With End Sub