Excel VBA在循环内复制和粘贴

时间:2017-05-23 19:29:59

标签: excel vba excel-vba

首先发布在这里。谢谢你的帮助。我有现有的VBA循环,它通过名单列表运行,并使用"语句创建PDF"特定于员工(姓名)的信息。我想从选项卡A中捕获循环内每个员工的信息,并将其粘贴到另一个工作表(相同的工作簿,不同的选项卡)选项卡B.请参阅包含的图像。我也粘贴了我当前的循环。非常感谢您的帮助。我想我需要在" Next"之前插入一些功能或东西。在我现有的代码中。只是不确定。在此新的一点。再次感谢。 Image Example of Excel Tabs

Sub Loop_Through_List()

Dim cell                  As Excel.Range
Dim rgDV                  As Excel.Range
Dim DV_Cell               As Excel.Range

Set DV_Cell = Range("B4")

Set rgDV = Application.Range(Mid$(DV_Cell.Validation.Formula1, 2))
For Each cell In rgDV.Cells
    DV_Cell.Value = cell.Value
    Call PDFActiveSheet
Next
End Sub

Function GetFolder() As String
Dim dlg                   As FileDialog
Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
dlg.InitialFileName = ThisWorkbook.Path & "\"
dlg.Title = "Select folder to save PDFs"
If dlg.Show = -1 Then
    GetFolder = dlg.SelectedItems(1)
End If
End Function

1 个答案:

答案 0 :(得分:0)

要在工作表之间移动数据,您可以使用以下内容:

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

您可以扩展上述内容以动态选择列。