2017-05-23 96 views
0

第一篇文章在這裏。謝謝你的幫助。我有一個現有的VBA循環,它運行一個名稱列表,並創建一個帶有特定於員工(名稱)信息的「語句」的PDF。我想從標籤A中捕獲循環內每個員工的信息,並將其粘貼到另一個工作表(同一工作簿,不同標籤)的標籤B中。請參閱包含的圖像。我也粘貼了我目前的循環。非常感謝您的幫助。我想我需要在我現有的代碼中的「Next」之前插入一些函數或其他東西。只是不確定。在這個新的排序。非常感謝。 Image Example of Excel TabsExcel VBA複製並粘貼循環內

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 
+0

你的問題是什麼?你目前的循環是否正常工作,只需要調整一些東西?它不起作用嗎?等等...你能澄清一下嗎? – BruceWayne

+0

是的,電流回路正常工作。只需要讓它按照我的初始文章中的描述做其他事情。 –

+0

我注意到我遺留了一部分代碼,我粘貼在上面。因此,這裏沒有Sub PDFActiveSheet。否則,當前的代碼很好。我只需要將一些功能投入到上述複製/粘貼的現有代碼中即可。 –

回答

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 

您可以根據上面的說明來動態選擇列。

+0

謝謝,這是非常好的幫助。我可以按照您的說明操作,以動態選擇適當的行來放置數據。我正在試圖找出/複製根據您的代碼動態選擇行和列。這將幫助我學習。我會在這裏發佈進度,或者要求提供額外的幫助。非常感謝。 –

+0

很高興我能幫到你。我自己還是一個VBA新手,並且在stackoverflow上學到了很多東西。我的第一個本能匹配季度將是使用'.Find'來搜索'TabA.Range(「B2」)'。您可以在我的答案中使用大部分相同的命令,但將searchorder更改爲'xlByRows' – MattD

+0

再次感謝。我把擴展選擇列,它很好。就像我在問。再次感謝你的幫助。 –