参与调查的人,其回答最终会显示在Excel电子表格的一行中。参与多个调查的人,其回答会分布在多个工作表中。这些人在每次调查前都会使用ID。
我想在每个工作表中的行之间循环,并从包含特定人员的调查答复的行中复制某些单元格。假设将答复拉入电子表格的人员知道ID。
Sub CreateSPSSFeed()
Dim StudentID As String ' (StudentID is a unique identifier)
Dim Tool As Worksheet ' (this is the worksheet I'm pulling data into)
Dim Survey1 As Worksheet ' (this is the sheet I'm pulling data from)
Dim i As Integer ' (loop counter)
Tool = ActiveWorkbook.Sheets("ToolSheet")
Survey1 = ActiveWorkbook.Sheets("Survey1Sheet")
' (This is how the loop knows what to look for)
StudentID = Worksheet("ToolSheet").Range("A2").Value
ActiveWorksheet("Survey1").Select ' (This loop start with the Survey1 sheet)
For i = 1 to Rows.Count ' (Got an overflow error here)
If Cells (i, 1).Value = StudentID Then
'!Unsure what to do here-- need the rest of the row
' with the matching StudentID copied and pasted
' to a specific row in ToolSheet, let's say starting at G7!
End If
Next i
End Sub
我在这里研究,并没有太多的运气结合循环与移动表。
3条答案
按热度按时间atmip9wb1#
这一个不太好,但可能会让你去:
ohtdti5x2#
这将检查工作簿中以“调查”开头的所有工作表中的行1:500(可以轻松更改为整列或不同范围),并将其粘贴到工具工作表中。请确保工具工作表上的学生ID之间有足够的空间,以便粘贴所有可能出现的情况。
FIND方法从这里开始:https://msdn.microsoft.com/en-us/library/office/ff839746.aspx
编辑:我已经添加了更多的注解和额外的代码,因为我意识到第一部分总是会找到放在单元格A2中的学生证。
dohp0rv53#
试试这个:
仅从您将数据池化到“工具”的工作表运行此代码。现在,您已经在工作表循环中嵌套了行循环。PS:不需要复制整行,只复制值范围,以避免错误。