2013-05-19 21 views
1

我已經做了連接3列的代碼,即YR對應於單元格A2,JJ對應單元格B2,YA對應單元格D2。當我點擊一個按鈕時,我希望它顯示G2的答案。這裏是我的代碼:串聯直到空單元格

Sub Button1_Click() 
Dim YR As String 
Dim JJ As String 
Dim YA As String 
Dim RF As String 

YR = Range("A2") 
JJ = Range("B2") 
YA = Range("D2") 
RF = YR & "." & JJ & "." & YA 
Range("G2") = RF 

End Sub 

我現在的問題是我怎麼才能使這個代碼工作,直到有一個空白單元?我已經搜索了一個關於這個的代碼:

Range("A1").Select 
Do Until IsEmpty(ActiveCell.Value) 
‘codes here 
ActiveCell.Offset(1,0).Select 
Loop 

我怎麼能讓我的代碼和先進的感謝!

+0

你想contatenate細胞A2-> N2其中n2是該行中的最後一個非空單元格? – NickSlash

+0

對不起,你的初始代碼有效,你現在試圖讓它在每一行之後都做同樣的事情,直到遇到空行爲止? – NickSlash

回答

3

嘗試下面的代碼,如果你不想循環。

Sub Button1_Click() 

    Dim lastRow As Long 
    lastRow = Range("A" & Rows.Count).End(xlUp).Row 
    Range("G2:G" & lastRow).FormulaR1C1 = "=RC[-6] & ""."" & RC[-5] & ""."" & RC[-3]" 

End Sub 

enter image description here

0

假設我理解你的問題,下面的代碼可以幫助(我沒有測試,雖然它)

Sub catrow(row as integer) 
Dim YR As String 
Dim JJ As String 
Dim YA As String 
Dim RF As String 

YR = Range("A" & row).value2 
JJ = Range("B" & row).value2 
YA = Range("D" & row).value2 
RF = YR & "." & JJ & "." & YA 
Range("G" & row) = RF 
End Sub 

Sub Button1_Click() 
Dim Target As Range 
Dim Row As Integer 
Row = 1 
Set Target = ActiveSheet.Range("A" & Row) 
Do Until IsEmpty(Target.Value) 
    catrow(row) 
    Set Target = Target.Offset(RowOffset:=1) 
Loop 
End Sub 
+0

感謝您的幫助!你理解我的問題。你的代碼沒有問題,但是當我點擊按鈕時它不工作? – kazSone

相關問題