2009-09-15 5 views
1

이전 셀의 변수를 기반으로 셀 열을 연결해야합니다. 지정된 변수가 변경 될 때까지 계속됩니다. 예를 들어 :매크로를 사용하여 다양한 셀 수를 연결해야합니다.

 
    A B C D E 
1 x  @1 @[email protected][email protected] 
2 x  @2 
3 x  @3 
4 y  %1 %1+%2+%3 
5 y  %2 
6 y  %3 
etc. 

나는 A1보고 매크로를 필요로하고 x가 있다면 다음 E1에 연결된 문자열을 시작합니다. 그런 다음 A2로 이동합니다. E1에 연결된 값에 D2를 더한 다음 A3로 이동합니다. E1에 연결된 값에 D3의 값을 더합니다. 예를 들어 열 A에 새로운 변수가 나오면 (y) 프로세스가 다시 시작됩니다. 이 모든 가능한에서인가? 도와 주셔서 대단히 감사합니다 !!

답변

0

다음은 수식이므로 E2에 붙여 넣고 복사하면 문제가 해결됩니다. 그것은 답을 E1, E4 등등에 깔끔하게 정리할 수는 없지만 칼럼을 계단식으로 내려 놓습니다.

VBA에서는 정확히 무엇을 할 수 있습니까?

공식 :

=IF(A2<>A1,D2,E1&D2) 
2

이 약간 빠른 - 및 - 더러운 코드는하지만 기능 :

Dim i As Integer 
Dim j As Integer 
i = 1 
j = 1 

Dim initialValue As String 

initialValue = Cells(i, 1).Value 

Do While Cells(i, 1).Value <> "" 
    Cells(j, 5).Value = "" 
    Do While Cells(i, 1).Value = initialValue 
     Cells(j, 5).Value = Cells(j, 5).Value & Cells(i, 4).Value 
     i = i + 1 
    Loop 

    initialValue = Cells(i, 1).Value 
    j = j + 1 
Loop 

그것은 활성 시트가 ​​열 한 것으로 가정합니다. 그리고 열 번호는 하드 코딩하고,이 시도 1 행

0

에 시작 :

Dim row As Integer 
Dim col As Integer 
Dim working_row As Integer 
Dim rowVal As String, myStr As String 

rowVal = "" 
row = 1 
col = 4 
While Cells(row, 1).Value <> "" 
    If Cells(row, 1).Value <> rowVal Then 
     myStr = "" 
     working_row = row 
     rowVal = Cells(row, 1).Value 
    End If 
    myStr = myStr & CStr(Cells(row, col).Value) 
    Cells(working_row, col + 1).Value = myStr 
    row = row + 1 
Wend 
관련 문제