Добрый день. Помогите пожалуйста сделать формулу или предложите другое решение. Есть таблица ABCDEFG столбцы и рядом H столбец. необходимо когда вставляют номера телефонов в столбцы ABCDEFG или только ABC чтобы в столбце H номера переносились по порядку с начало с А столбца потом В итд. В столбце Н должны идти номера без пропуску строк. Нашел решение с помощью Kutools диапазон переноса до одного столбца. Но он переносит построчно что не подходит.
Добрый день. Помогите пожалуйста сделать формулу или предложите другое решение. Есть таблица ABCDEFG столбцы и рядом H столбец. необходимо когда вставляют номера телефонов в столбцы ABCDEFG или только ABC чтобы в столбце H номера переносились по порядку с начало с А столбца потом В итд. В столбце Н должны идти номера без пропуску строк. Нашел решение с помощью Kutools диапазон переноса до одного столбца. Но он переносит построчно что не подходит.diooniss
Sub u_625() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear For u = 1 To a For Each v In Range("a" & u & ":f" & u) If v.Value <> "" Then b = Cells(Rows.Count, "h").End(xlUp).Row + 1 v.Copy Range("h" & b) End If Next Next Application.ScreenUpdating = True End Sub
[/vba]
вдруг правильно [vba]
Код
Sub u_625() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear For u = 1 To a For Each v In Range("a" & u & ":f" & u) If v.Value <> "" Then b = Cells(Rows.Count, "h").End(xlUp).Row + 1 v.Copy Range("h" & b) End If Next Next Application.ScreenUpdating = True End Sub
Sub u_626() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear arr1 = Range("A1:F" & a) ReDim arr2(1 To UBound(arr1) * UBound(arr1, 2), 1 To 1) n = 1 For u = 1 To UBound(arr1, 2) For v = 1 To UBound(arr1) If arr1(v, u) <> "" Then arr2(n, 1) = arr1(v, u) n = n + 1 End If Next Next [h1].Resize(UBound(arr2), 1) = arr2 Application.ScreenUpdating = True End Sub
Sub u_626() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear arr1 = Range("A1:F" & a) ReDim arr2(1 To UBound(arr1) * UBound(arr1, 2), 1 To 1) n = 1 For u = 1 To UBound(arr1, 2) For v = 1 To UBound(arr1) If arr1(v, u) <> "" Then arr2(n, 1) = arr1(v, u) n = n + 1 End If Next Next [h1].Resize(UBound(arr2), 1) = arr2 Application.ScreenUpdating = True End Sub
Sub u_627() Application.ScreenUpdating = False c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear For u = 1 To 6 f = Cells(Rows.Count, u).End(xlUp).Row x = Cells(Rows.Count, "h").End(xlUp).Row + 1 Range(Cells(1, u), Cells(f, u)).Copy Range("h" & x) Next y = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & y).SpecialCells(xlCellTypeBlanks).Delete Application.ScreenUpdating = True End Sub
Sub u_627() Application.ScreenUpdating = False c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear For u = 1 To 6 f = Cells(Rows.Count, u).End(xlUp).Row x = Cells(Rows.Count, "h").End(xlUp).Row + 1 Range(Cells(1, u), Cells(f, u)).Copy Range("h" & x) Next y = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & y).SpecialCells(xlCellTypeBlanks).Delete Application.ScreenUpdating = True End Sub
Не совсем понял, что именно Вы хотите, по сути там общий формат и Excel его вполне понимает как число, но если очень нужно, то так [vba]
Код
Sub u_626() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear arr1 = Range("A1:F" & a) ReDim arr2(1 To UBound(arr1) * UBound(arr1, 2), 1 To 1) n = 1 For u = 1 To UBound(arr1, 2) For v = 1 To UBound(arr1) If arr1(v, u) <> "" Then arr2(n, 1) = arr1(v, u) n = n + 1 End If Next Next [h1].Resize(UBound(arr2), 1).NumberFormat = "0" [h1].Resize(UBound(arr2), 1) = arr2 Application.ScreenUpdating = True End Sub
[/vba]
Не совсем понял, что именно Вы хотите, по сути там общий формат и Excel его вполне понимает как число, но если очень нужно, то так [vba]
Код
Sub u_626() Application.ScreenUpdating = False a = Cells(Rows.Count, "a").End(xlUp).Row c = Cells(Rows.Count, "h").End(xlUp).Row Range("h1:h" & c).Clear arr1 = Range("A1:F" & a) ReDim arr2(1 To UBound(arr1) * UBound(arr1, 2), 1 To 1) n = 1 For u = 1 To UBound(arr1, 2) For v = 1 To UBound(arr1) If arr1(v, u) <> "" Then arr2(n, 1) = arr1(v, u) n = n + 1 End If Next Next [h1].Resize(UBound(arr2), 1).NumberFormat = "0" [h1].Resize(UBound(arr2), 1) = arr2 Application.ScreenUpdating = True End Sub