2014-02-27 28 views
-1

我幾乎沒有VBA經驗,但我過去已經開發了高級代碼。我需要一個簡單的VBA腳本來處理我正在使用的工作簿。我已經在網絡上搜索解決方案,但我一直無法找到我需要的。 我有兩個工作表的工作簿(例如:Sheet1和Sheet2)。需要一個VBA腳本來替換一個表單中的數據與另一個表單中的數據

•Sheet1中有兩列(列A(包含名稱)和列B(包含一個數值)。例如:

A  B 
Smith 1236 
Jones 7643 
White 2344 
Thomas 9022 
Greene 5221 
Holmes 3287 
Jackson 9932 

•Sheet2中有多個列,但我需要選擇單ColumnJ中的單元格可能包含或不包含Sheet1/ColumnA中的一個名稱,如果該名稱出現在Sheet2/ColumnJ中的單元格中,則需要用名稱中的數值替換該名稱Sheet1/ColumnB

A  B  C  D  …  J  …  Z 
Smith 1236 Data Data Data White Data Data 
Jones 7643 Data Data Data Jackson Data Data 
White 2344 Data Data Data Wilson Data Data 
Thomas 9022 Data Data Data Holmes Data Data 
Greene 5221 Data Data Data Black Data Data 
Holmes 3287 Data Data Data Jones Data Data 
Jackson 9932 Data Data Data White Data Data 

Sheeet2在運行VBA sc之前RIPT

A  B  C D … J … Z 
Data Data Data Data Data 2344 Data Data 
Data Data Data Data Data 9932 Data Data 
Data Data Data Data Data  Data Data 
Data Data Data Data Data 3287 Data Data 
Data Data Data Data Data  Data Data 
Data Data Data Data Data 7643 Data Data 
Data Data Data Data Data 2344 Data Data 

Sheet2中運行VBA腳本

+2

而你嘗試過什麼嗎? ([建議閱讀](http://whathaveyoutried.com)) – Barranka

回答

1

雖然我與蒂姆同意,我會給你一些leway,第一次發帖,只是試圖表現出一定的嘗試,給我們的東西來操作後。

試試這個代碼:

Sub DropThat() 

Application.ScreenUpdating = False 
Dim name As String, value As Long, i As Long, lastrow1 As Long, lastrow2 As Long 
i = 1 
j = 1 
lastrow1 = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 
lastrow2 = Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row 
Do While i < lastrow1 + 1 
name = Sheets("Sheet1").Cells(i, 1).value 
value = Sheets("Sheet1").Cells(i, 2).value 
Do While j < lastrow2 + 1 
If Sheets("Sheet2").Range("J" & j) = name Then 
    Sheets("Sheet2").Range("J" & j) = value 
End If 
j = j + 1 
Loop 
j = 1 
i = i + 1 
Loop 
Application.ScreenUpdating = True 
End Sub 
相關問題