簡體   English   中英

Excel VBA在循環內復制和粘貼

[英]Excel VBA copy and paste within loop

首先發布在這里。 謝謝你的幫助。 我有一個現有的VBA循環,該循環運行一個名稱列表,並創建一個包含“雇員”(名稱)信息的“聲明”的PDF。 我想從選項卡A捕獲循環中每個員工的信息,然后將其粘貼到另一個工作表(相同的工作簿,其他選項卡)選項卡B。請查看其中包含的圖像。 我還粘貼了當前循環。 非常感謝您的幫助。 我想我需要在現有代碼的“下一步”之前插入一些功能或某些內容。 只是不確定。 有點新。 再次非常感謝。 Excel選項卡的圖像示例

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

要在工作表之間移動數據,可以使用以下方法:

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

您可以在上面進行擴展以動態選擇列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM