2017-11-30 4 views
1

셀 범위가 선택되었습니다. 그 안에있는 모든 열을 연결하고 결과를 행의 첫 번째 셀 (선택 항목의 첫 번째 열)에 기록해야합니다. 나는 코드각 행의 열 연결

Dim row As Object 
Dim col As Object 
Dim cell_concat As String 

For Each row In Selection 
    cell_concat = "" 
    For Each col In row 
     cell_concat = cell_concat & col.Value 
    Next col 
    `How to record in first cell? 
Next row 

다음 쓰기 위해 노력하고있어하지만이 방법은 불행히도 작동하지 않습니다와 나는 행의 첫 번째 셀에 cell_concat를 기록하는 방법을 알아낼 수 없습니다. 내가 뭘 잘못하고 코드를 수정해야합니까?

+0

제? –

+0

선택 항목의 첫 번째 열 – Victor

답변

1

이렇게 선택된 각 행의 첫 번째 셀에 값을 연결할 것이다

선택의 열 A 또는 첫 번째 열 등에 해당 행
Dim rw As Range 
Dim col As Range 
Dim cell_concat As String 

For Each rw In Selection.Rows 
    cell_concat = "" 
    For Each col In rw.Cells 
     cell_concat = cell_concat & col.Value 
    Next col 
    rw.Cells(1, 1).Value = cell_concat 
Next row 
+0

전체 행을 선택하지 않으면 어떻게됩니까? Select.Columns (1). 첫 번째 선택된 열의 번호를 가져 오기위한 열? 그리고 rw. 행 번호는 얼마입니까? – mooseman

+0

rw를 사용하지 않으면 선택한 범위의 각 행이 반복 될 때 범위가 포함됩니다. 따라서 A1 : H9를 선택하면 rw는 먼저 A1 : H9, A2 : H9가 될 것입니다. 그런 다음 col은 해당 범위의 각 셀을 개별적으로 연결합니다. 그러면 rw.Cells (1 : 1)는 항상 첫 번째 열의 셀을 참조합니다. 선택이 하나의 셀이라 할지라도 작동 할 것입니다. 그것은 단지 거기에 있었던 값을 넣을 것이므로 아무것도하지 않는 것처럼 보일 것입니다. 그것은 단지 하나의 행이나 하나의 열일 수 있고 그것은 잘 작동 할 것입니다. –

+0

셀은 부모를 기준으로합니다. 'worksheet.Cells (1,1)'을 사용할 때'A1'을 참조 할 것이지만'rw'의 범위가'B1 : D1'이면'rw.Cells (1,1)'은'B1 '. @mooseman –