2014-02-21 40 views
0

我有一張2列的表格。如何在VBA中進行單元格複製粘貼和值替換?

AB

A2 B2 NN

A3 B3 NN

.....

的BN NN

我需要B2單元格的內容複製並將其粘貼到所有其他B列單元格,其中A列具有值。 然後在B列中查找某個值(nn)並用A列值替換它。 爲了複製B2內容我這樣做:

Sub CopyTest() 

    'ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select 

    Range("B3:B1048576").Select 
    Selection.ClearContents 

    Range("B2").Copy 
    Range("B2:B7").PasteSpecial (xlPasteAll) 

Application.CutCopyMode = False 

End Sub 

1,問題是,我不知道該怎麼做糊不直到某些細胞(B7),但對於所有的表(所以直到一列包含值)。

類似的問題,我已經從A列

Sub ReplaceExample() 

    Dim OriginalText As String 
    Dim CorrectedText As String 

    OriginalText = Range("B2").Value 
    CorrectedText = Replace(OriginalText, "E_ONBAL", Range("A2").Value) 
    Range("B2").Offset(, 1).Value = CorrectedText 



End Sub 

2.How值做同樣的動作對所有的A柱代替某些B-列值,所以做種循環?

謝謝!

+1

此答案可能會對您有所幫助:http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba/11169920#11169920 –

回答

0

第一部分是管理的,所以我公佈答案,萬一這將是有用的人:

Sub CopyTest() 

    Range("B3:B1048576").Select 
    Selection.ClearContents 

Set currentsheet = ThisWorkbook.Worksheets("Sheet1") 
    LastRow = currentsheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

    Range("B2").Copy 
    Range("B3" & ":" & "B" & LastRow).PasteSpecial (xlPasteAll) 

Application.CutCopyMode = False 

End Sub 

我剛纔還沒有管理如何才能修改腳本的第二部分以置換對所有的A列做同樣的動作,這樣做循環。

0

該示例說明如何從活動頁複製到另一頁。

Sub Test1() 

Dim SuccessSheet As String 
Application.ScreenUpdating = False 
SuccessSheet = ActiveSheet.Name 

WS_Count = ActiveWorkbook.Worksheets.Count 


' Generate new sheet if it does not exist 
If Not sheetExists(SuccessSheet & " Log") Then 
    Set WS = Sheets.Add(After:=Worksheets(WS_Count)) 
    Worksheets(SuccessSheet).Columns(2).Copy Destination:=Worksheets(WS.Name).Columns(2) 
    Worksheets(SuccessSheet).Columns(4).Copy Destination:=Worksheets(WS.Name).Columns(1) 

WS.Name = SuccessSheet & " Log" 

End if 

Application.ScreenUpdating = True 
End Sub 
相關問題