【发布时间】:2020-01-21 02:53:04
【问题描述】:
试图解决从“E2”开始读取“信息表”上“E”列中的帐号并获取该数字并将其输入到“证明”上包含空白单元格的第一行的循环" 帐号部分下的工作表 ('E4')。将号码放在那里后,与单元格“E4”中的帐号关联的“长名称”(在第 200 行的表格中找到)出现在帐户名称部分下的第一个空白单元格(“B4”)中.然后,循环继续并读取“输入表”上的下一个单元格('E3'),如果该帐号属于同一名称,则将该号码放在“证明”上的下一个白色单元格('G4')中“ 床单。如果帐号与单元格“B4”中的帐户名没有关联,请将其放在包含空白单元格“E12”的下一行中,并在单元格“B12”中的帐户名下的单元格中为该号码分配适当的名称,然后继续在信息表上的“E”列中的列表并重复该过程,直到第一张表上的所有帐号都完成并且所有适当的帐号都在具有这些帐号的适当“长名称”的行上.
如何将与帐户名称关联的所有帐户放在特定白色单元格的同一行中,而不在同一行中发布两次?
这是我的代码:
Sub loopything()
Dim infoSheet As Worksheet, proofSheet As Worksheet, refRange As Range, lastRow As Long, r As Long
Dim acct As String, foundAcct As Range, nextRow As Long
Set infoSheet = ThisWorkbook.Sheets("Info Sheet")
Set proofSheet = ThisWorkbook.Sheets("Proof")
With proofSheet
nextRow = 4 ' waiting to adjust to normal table format
End With
With proofSheet
Set refRange = .Range("A200:L79000")
End with
With InfoSheet
lastRow = 30 ' .cells(.rows.count, "E").end(xlup).row
For r = 2 To lastRow
acct = .Cells(r, "E")
Set foundAcct = refRange.Find(what:=acct)
longname = foundAcct.Offset(0, 1)
proofSheet.Cells(nextRow, "E") = acct
proofSheet.Cells(nextRow, "B") = longname
nextRow = nextRow + 8 ' would be nicer to just add one row (see first note)
Next r
End With
End Sub
查看 sn-ps 以供参考。
代码目前正在这样做:
看看在应该模仿真实表格的练习示例中,名称如何出现在多行上,并带有各自的帐号,而它们应该以相同的名称出现在同一行上,并且所有帐号都在一个上排。
【问题讨论】:
-
No attempt was made。请始终包括您尝试过的内容。请注意,这不是免费的编码服务。你需要问一个问题(见How to Ask和Why is “Can someone help me?” not an actual question?)。
-
我很抱歉。我不知道我需要提供尝试证明。我确实浏览了整个网络,但找不到任何可以解决这个困境的东西,也不知道如何将这样的循环放在一起。我会尝试找到一些东西来证明我试图找出解决方案。
-
至少你应该把你的问题缩短到一个特定的部分。我试图解释这个问题:你现在所做的是解释你的整个项目,这太宽泛了,不能在这里问。试着把它分成小部分,只询问你有问题的部分。绝对有必要问一些事情,因为你没有。 • 考虑一下您需要解决哪些步骤,实际上一个程序将执行或多或少完全相同的步骤,就像您手动执行一样。所以开始用手做/思考,找出你的步骤。然后询问一步。那么更有可能得到答案。
-
我将我的帖子编辑为更短、更清晰的帖子,其中包含关于我需要帮助的步骤的问题。我还添加了我找到并根据我需要进行操作的代码,但仍然没有让它完全满足我的需要。我希望这是一个更好的帖子。
-
在您的原始文档(输入表)中 - 您在哪些列中有“帐户名称”/“长名称”和“金额”/“代理编号”?是 F 和 G 还是 H 和 I? 2 张图片显示不同的结果。