【发布时间】:2015-03-25 23:22:19
【问题描述】:
所以我是编写宏的新手,所以请原谅我的任何无知。我浏览了许多在线资源以找到类似的代码,但没有任何符合我需要的代码。
我正在尝试在 Excel 中创建一个表单,该表单会自动填充输入到单独工作表中的数据。数据表WorkSheet("Results") 具有跨行存储的数据,Row(Column A) 中的第一个单元格是数据标识符。表单WorkSheet("Audit Form") 需要输入数据标识符来填充整个表单的字段。
我需要的是一个代码,它将遍历 Column A 中的单元格,将它们输入到审核表单上的字段中,然后将 WorkSheet("Audit Form") 复制到一个新的工作簿中,循环遍历表中的每一行在WorkSheet("Results")。这将由一个按钮驱动,该按钮将在选择后执行宏。如果用户在其上使用过滤器,则代码最好忽略表中的隐藏字段。
到目前为止,我编写的代码将循环遍历Column A 中的行并将它们粘贴到审核表单中的必填字段,并将WorkSheet("Audit Form") 复制到新的工作簿中,但审核表单正在编译到新的工作簿中WorkBook 仅具有第一个 Row("A2") 的数据标识符,因此每个复制的审核表单都显示相同的数据。
我确定我遗漏了一些可以纠正此问题的小代码,感谢您提供的任何建议!
Sub testbutton()
Dim incell As Range, outcel As Range
Set outcel = Worksheets("Results").Range("A2")
Set incell = Sheets("Audit Form").Range("F29")
Do
incell.Value = outcel.Value
Sheets("Audit Form").Copy Before:=Workbooks("Book1").Sheets(1)
Set outcel = outcel.Offset(1, 0)
Loop
End Sub
【问题讨论】:
-
您能展示一下您的数据是如何组织的吗?我认为这可以在不循环的情况下简化。显示源数据(简化),然后显示要填充的表单或模板工作表。您可以在任何免费图片托管网站(例如imgur.com)上传屏幕截图,然后在您的问题中发布链接。
-
您能否edit 您的问题并打破巨大的文字墙以包含一些段落中断?当你说话的时候,你偶尔会停下来喘口气;写作时也应该这样做。
-
添加 Set incell = incell.Offset(1, 0) 怎么样?
-
所以你意识到你有一个不循环的循环? Do 和 Loop 都没有定义执行循环的任何标准。它只是“失败”一次。因此,实际上您似乎只是将“Results!A2”复制到“Audit Form!F29”中......只是那个单元格。您没有循环“遍历 A 列中的单元格”来引用您的问题。