Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос для соединения ячеек
 
Может вы тогда еще кое-что подскажите?) Хочу в массив запихнуть количество заполненных ячеек в каждом столбце. На мой код ругается, что я пишу не так?

Код
n = Sheets("Лист1").UsedRange.Column + Sheets("Лист1").UsedRange.Columns.Count - 1
For ii = 1 To n
R(ii) = Sheets("Лист1").Cells(Rows.Count, ii).End(xlUp).Row
Next
Изменено: kamlayka - 14 Июн 2017 12:29:36
Макрос для соединения ячеек
 
и еще, мне нужно, чтобы не в каждом столбце были слова, а в одной ячейке: http://i.imgur.com/b3k1nEt.png
Макрос для соединения ячеек
 
Ммм, странно, но не пашет:
http://i.imgur.com/4SiwAqn.png
http://i.imgur.com/pNhKlOX.png
Макрос для соединения ячеек
 
прикрепила
Макрос для соединения ячеек
 
Задача такая. Соединить каждую ячейку первого выбранного столбца с каждой ячейкой следующего выбранного столбца. Например, есть столбцы
а        б
кака   зеленая
бяка   белая

а на следующем листе таблицы должно получиться
а
кака зеленая
кака белая
бяка зеленая
бяка белая

Есть форма, в которую загружаются чекбоксы с названиями всех столбцов на листе - для выбора нужных столбцов, которые будут соединяться. Плюс также им соответствуют текстбоксы, в которых можно указать порядок соединения столбцов. Есть кнопка, по клику на которую на следующем листе все соединяется. Пример и код прикрепляю. Знаю, что соединение реализуется через &, но не знаю, как это все описать(( Подскажите плиз..
Код
 
  Private Sub
  CommandButton1_Click()

  End Sub
  
  Private Sub UserForm_Initialize()
  Dim i, n As Integer
 
  n = Sheets("Лист1").Cells(1, 1).CurrentRegion.Rows.Count
      
  For i = 1 To n       
  Dim Mycmd As Control
  Dim Mycmd1 As Control
 
 Set Mycmd = Controls.Add("Forms.CheckBox.1")
 Set Mycmd1 = Controls.Add("Forms.TextBox.1")
 
              With Mycmd
         .Height = 18
         .Left = 10 
         .Top = i * 20
         .Width = 90
         .Caption = Sheets("Лист1").Cells(1, i).Value
         .Name = "CheckBox" & i
         .Value = "True"
              End With
 
              With Mycmd1
        .Height = 18
        .Left = 80
        .Top = i * 20
        .Width = 90
        .Value = i
        .Name = "TextBox" & i
              End With
  Next i
  End Sub
 
Изменено: kamlayka - 13 Июн 2017 18:06:49
Макрос на заполнение ячеек в цикле, где ошибка?
 
БМВ, теперь понятно, большое спасибо)
Макрос на заполнение ячеек в цикле, где ошибка?
 
Александр, вы не совсем правильно меня поняли. Но на основе вашего макроса я сумела поправить свой. У меня остался только один вопрос, я не совсем понимаю действие Rng.Columns(1).SpecialCells(2). Rng.Columns(1) - это наш столбец А, а SpecialCells(2) - вторая ячейка что ли??
Код
Private Sub CommandButton1_Click()
Dim Cl As Range, Cl1 As Range, Rng As Range, per As Long
Application.ScreenUpdating = False
per = UserForm1.TextBox1.Value
Set Rng = ActiveSheet.UsedRange

For Each Cl In Rng.Columns(1).SpecialCells(2)
    per = per + 1
    Cl.Offset(0, 1).Value = per

If Left(Cl, 6) = LastCl Then
        Cl.Offset(0, 4).Value = Cl.Offset(-1, 4).Value

        Else
        Cl.Offset(0, 4).Value = per
        LastCl = Left(Cl, 6)
    End If

Next
Application.ScreenUpdating = True
Unload Me
End Sub
Макрос на заполнение ячеек в цикле, где ошибка?
 
Александр, можете еще немножко помочь? Не знаю, как сравнить первые 6 символов активной ячейки с предыдущей. Мне нужно сделать условие: если у активной ячейки совпадают первые 6 символов с предыдущей, тогда значение во втором столбце тоже берется из ячейки выше. Если нет - тогда Cl.Offset(0, 3).Value = per

Подскажите хотя бы функции, а то не знаю, куда двигаться. Пример, как должно быть подкрепляю
Макрос на заполнение ячеек в цикле, где ошибка?
 
Александр, вы великолепны, благодарю!)
Макрос на заполнение ячеек в цикле, где ошибка?
 
Юрий М, ммм, а можете подсказать?
Во-первых, я не знаю, чему должно равняться значение i (по идее количеству не пустых ячеек в столбце А). Как вообще сделать цикл, который прерывается, если в ячейке (Cells(n, 1)) будет пусто?
Макрос на заполнение ячеек в цикле, где ошибка?
 
Да ради бога)))
Код
Private Sub CommandButton1_Click() 
per = UserForm1.TextBox1.Value 

For n = 2 To i 
If IsEmpty(Cells(n, 1)) = False Then 
per = per + 1 
Cells(n, 21).Value = per 
Else 
Exit For 
End If 
Next n 

End Sub 
Макрос на заполнение ячеек в цикле, где ошибка?
 
В общем, задача такая. Есть форма с одним textbox и кнопкой ок. При нажатии на кнопку нужно чтобы происходил цикл: если ячейка в столбце A не пустая, то в ячейке столбца U должно записаться значение из textbox, увеличенное на 1, в следующей ячейке на 2 и т.д.
Код
Private Sub CommandButton1_Click()
per = UserForm1.TextBox1.Value

For n = 2 To i
If IsEmpty(Cells(n, 1)) = False Then
per = per + 1
Cells(n, 21).Value = per
Else
Exit For
End If
Next n

End Sub

Подскажите, как это правильно оформить, пожалуйста.
Изменено: kamlayka - 6 Мар 2017 02:22:18
Сравнить 2 столбца построчно, несовпадения перенести вниз
 
JayBhagavan, о, могущественная чародейка, благодарю тебя от всей души! Пойду изучать код. Спасибо большое, реально)
Сравнить 2 столбца построчно, несовпадения перенести вниз
 
да. Но такой ситуации гипотетически вообще не должно возникнуть)
Сравнить 2 столбца построчно, несовпадения перенести вниз
 
Прошу прощения. В книге 2 листа: как есть и как хотелось бы
Сравнить 2 столбца построчно, несовпадения перенести вниз
 
Подскажите, пожалуйста, с ситуацией:

Необходимо сравнить 2 столбца построчно. А для этого все несовпадающие данные  надо перенести вниз. Например, на скрине видно ситуацию, когда из-за DS0006 нарушается сравнение((
Страницы: 1
Наверх