Excel VBA代码,用于将多列转换为多行

Excel VBA代码,用于将多列转换为多行,vba,excel,Vba,Excel,有人能帮忙吗,我是VBA的新手,我想提前感谢你的帮助。如果有任何我的问题已经被解决的链接,请给我指出正确的方向。我已经在这里和其他网站上搜索过了,但我找不到任何至少能让我开始的东西。我想创建VBA代码,循环遍历每行中的单元格,并将它们转换为单独的行,如下图所示 我有一个包含12000行数据和多列数据的excel电子表格。对于每一行,我都有列“A”到“Q”作为静态字段。姓名、DOB、ID_编号、e.t.c.从“Q”列到“DD”,我重复了“City”和“RegDate”列的数据,例如:City1、R

有人能帮忙吗,我是VBA的新手,我想提前感谢你的帮助。如果有任何我的问题已经被解决的链接,请给我指出正确的方向。我已经在这里和其他网站上搜索过了,但我找不到任何至少能让我开始的东西。我想创建VBA代码,循环遍历每行中的单元格,并将它们转换为单独的行,如下图所示

我有一个包含12000行数据和多列数据的excel电子表格。对于每一行,我都有列“A”到“Q”作为静态字段。姓名、DOB、ID_编号、e.t.c.从“Q”列到“DD”,我重复了“City”和“RegDate”列的数据,例如:City1、RegDate1、City2、RegDate2、City3、RegDate3、…&CityN、RegDateN。城市名称用作标题,数据单元格在每个注册城市下显示“R”,并在其旁边的列中显示注册日期,否则没有条目

我想对这些数据进行转换,以便对于每个注册人员的城市,我将有一个显示静态字段“a”到“p”、“City”和“RegDate”的新行数据,即在“p”列之后,我将只有两列“City”和“RegDate”

我真的很难创建从Q列循环到DD列的代码,在遇到“R”时创建一个新行,将行、列、a列复制到“p”,并在新列“Q”中插入城市名称,在新列“R”中插入RegDate,然后再移动到下一行,直到所有12000行都被转换


如果您能帮助我开始,我们将不胜感激,尤其是在设置循环时,它会为遇到“R”的每条记录创建一个新角色。

您是否考虑过将此信息放在最右侧的两个新列中(DEDF)?然后您可以将Q隐藏到DD,或者删除这些列

至于执行此操作的循环代码:

Dim cr As Long 'current row
Dim cc As Long 'current column
For cr = 2 To 12000
  For cc = 17 To 108 Step 2
    If Cells(cr, cc).Value = "R" Then
      'make column 109 (DE) in current row = city name
      Cells(cr, 109).Value = Cells(1, cc).Value
      'make column 110 (DF) in current row = date of registration
      Cells(cr, 110).Value = Cells(cr, cc + 1).Value
    End If
  Next
Next

您可能想考虑使用此数据的数据库。如果你有Excel,也许你有权限?非常感谢@Aarontomas,这正是我想要的。我已经对它进行了编辑,添加了其他静态字段,现在它可以完美地工作了。