我有一个复杂的工作簿,我试图从其中一个工作表中获取信息并使用IF函数或VLOOKUP放入新工作表但我似乎无法使其工作。
示例:
表1: 我有来自B14:B47的空细胞和C14中的空细胞:C47
表2: 我在C13:C84的单元格中的名称全部按字母顺序排列,(没有一个相同)。
H13中的空单元格:H84
该表将显示人们将在该区域工作多少小时
欲输入的小时的量成上纸2的小区其间的H13:H84和用于片材1拿起的小时数,并将其放置到C14:C47,在他顶部作为一个列表(有惯于是一个完整的清单),并在表2中的行上匹配的名称被拾取并放入B14:B47,以及列表的顶部。
所以澄清一下: Joe Bloggs在第2页的C14中 他已经工作了8个小时,我将把它输入到他的名字H14旁边的单元格中,
我希望表单1能够找到他的名字旁边有一个数字,并将他的名字放在第1页的B14和第1页的C14以及该括号和范围内的任何其他人中。
我希望这是有道理的,因为我已经到了这个时候。 : - )
答案 0 :(得分:0)
您想将Sheet2(C:C)复制到Sheet1(B:B)和Sheet2(H:H)复制到Sheet1(C:C)? 正如@ sr28所说,如果你想忽略空单元格,那就不清楚了......
如果您只想复制,请使用:
Sub copyData()
Dim Count As Integer
Count = Worksheets("Sheet2").Range("C2").End(xlDown).Row 'find last row from column C on sheet2
ActiveWorkbook.Sheets("Sheet2").Activate
For i = 1 To Count
Sheet1.Cells(i, 2) = Sheet2.Cells(i, 3)
Sheet1.Cells(i, 3) = Sheet2.Cells(i, 8)
Next i
End Sub
如果要忽略Sheet2.H上的空白单元格,可以使用:
Sub copyDataNoEmpty()
Dim Count As Integer
Dim j As Integer
Count = Worksheets("Sheet2").Range("C2").End(xlDown).Row
j = 1
For i = 1 To Count
If Sheet2.Cells(i, 8) <> Empty Then
Sheet1.Cells(j, 2) = Sheet2.Cells(i, 3)
Sheet1.Cells(j, 3) = Sheet2.Cells(i, 8)
j = j + 1
End If
Next i
End Sub