我使用数据验证制作了一张(Sheet2),Sheet2中的A1可以取1到6的不同值(ID)。范围C4中的单元格:G9取决于A1中的值。
现在我正在构建Sheet1,我希望将Sheet2中的数据扩展为一个工作表。基本上,列A包含在Sheet2,A1中的ID,我希望将Sheet2(C4:G9)中的数据写入B列,同时将A1,Sheet2设置为A列,Sheet1中的一个值。
我知道如何为每个ID编写一个宏,但是我必须向下移动5行并对下一个ID执行相同操作。我有数百个,并且要一个接一个地完成它...任何提示如何快速完成?
[![在此处输入图像说明] [3]] [3]
答案 0 :(得分:0)
根据评论,我认为这应该回答你的问题:
Public Sub TransferData()
Dim wb As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set wb = ActiveWorkbook
Set sh1 = wb.Worksheets("Sheet1")
Set sh2 = wb.Worksheets("Sheet2")
' Sheet 2 contains ID's and data. For each id, we want to:
' Make a new row for it in sheet1
' For each piece of data (C:G), there should be a row with the ID and that data
Dim k As Range
Dim r As Integer
Dim i As Range
Dim col As Range
Set i = sh1.Cells(2, 1)
For Each k In sh2.Range(sh2.Cells(2, 1), sh2.Cells.SpecialCells(xlCellTypeLastCell))
' ID is k.value
For Each col In sh2.Range(k.Offset(0, 2), k.Offset(0, 6))
i.Value = k.Value
i.Offset(0, 1).Value = col.Value
Set i = i.Offset(1, 0)
Next col
Next k
End Sub
它会循环显示所有原始ID({1}}的第1列),并且对于ID数据的每个数据(列Sheet2
- C
),它会在您的内容中添加一行在列G
中具有相同Sheet1
的其他工作表(ID
),然后是A
列中的特定数据点