Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA在循环内复制和粘贴_Vba_Excel - Fatal编程技术网

Excel VBA在循环内复制和粘贴

Excel VBA在循环内复制和粘贴,vba,excel,Vba,Excel,第一个帖子在这里。谢谢你的帮助。我有一个现有的VBA循环,它运行在一个姓名列表中,并创建一个PDF,其中包含特定于员工(姓名)的信息“声明”。我想从选项卡A中捕获循环中每个员工的信息,并将其粘贴到另一个工作表(同一工作簿,不同选项卡)选项卡B。请参阅包含的图像。我还粘贴了我当前的循环。非常感谢你的帮助。我想我需要在现有代码的“下一步”之前插入一些函数或其他内容。只是不确定。这有点新鲜。再次非常感谢。 要在工作表之间移动数据,可以使用以下方法: Dim TabA as Worksheet, Ta

第一个帖子在这里。谢谢你的帮助。我有一个现有的VBA循环,它运行在一个姓名列表中,并创建一个PDF,其中包含特定于员工(姓名)的信息“声明”。我想从选项卡A中捕获循环中每个员工的信息,并将其粘贴到另一个工作表(同一工作簿,不同选项卡)选项卡B。请参阅包含的图像。我还粘贴了我当前的循环。非常感谢你的帮助。我想我需要在现有代码的“下一步”之前插入一些函数或其他内容。只是不确定。这有点新鲜。再次非常感谢。


要在工作表之间移动数据,可以使用以下方法:

Dim TabA as Worksheet, TabB as Worksheet
Set TabA = ThisWorkbook.Worksheets("Tab A")
Set TabB = ThisWorkbook.Worksheets("Tab B")

TabB.Range("C2")=TabA.Range("I21").Value2
要将总计放在正确的行中,可以使用.Find方法:

Dim SearchText as String
Dim datarow as Long
SearchText=TabA.Range("B4")
datarow = TabB.Cells.Find(What:SearchText, After:=Range("A1"), LookIn:=xlValues, LookAt:=xlWhole, searchorder:xlByColumns, searchdirection:=xlNext).Row
TabB.Cells(datarow, 3)=TabA.Range("I21").Value2

您可以展开上面的内容,也可以动态选择列。

您有什么问题?您当前的循环工作正常吗,只需要调整一下?它不起作用吗?等等…你能澄清一下吗?是的,电流回路工作正常。只需要让它做一些我在第一篇文章中描述的其他事情。我确实注意到我在上面粘贴的代码中遗漏了一部分。因此,此处缺少子PDFActiveSheet。否则,当前代码就可以了。我只需要在上面描述的复制/粘贴的现有代码中加入一些功能。谢谢,这是非常好的帮助。我可以按照您的说明操作,动态选择适当的行来放置数据。我正在尝试根据您的代码找出/复制行和列的动态选择。这将帮助我学习。我会在这里发布进展,或者请求额外的帮助。非常感谢。很高兴我能帮忙。我自己仍然是一个VBA新手,在stackoverflow上学到了很多东西。我匹配季度的第一反应是使用
.Find
搜索
TabA.Range(“B2”)
。您可以在我的回答中使用大部分相同的命令,但将searchorder更改为
xlByRows
再次感谢。我加入了扩展来选择专栏,效果很好。就像我问的那样。再次感谢您的帮助。
Dim SearchText as String
Dim datarow as Long
SearchText=TabA.Range("B4")
datarow = TabB.Cells.Find(What:SearchText, After:=Range("A1"), LookIn:=xlValues, LookAt:=xlWhole, searchorder:xlByColumns, searchdirection:=xlNext).Row
TabB.Cells(datarow, 3)=TabA.Range("I21").Value2