2013-05-19 23 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

相关问题