Страницы: 1
RSS
Макрос для соединения ячеек
 
Задача такая. Соединить каждую ячейку первого выбранного столбца с каждой ячейкой следующего выбранного столбца. Например, есть столбцы
а        б
кака   зеленая
бяка   белая

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

Есть форма, в которую загружаются чекбоксы с названиями всех столбцов на листе - для выбора нужных столбцов, которые будут соединяться. Плюс также им соответствуют текстбоксы, в которых можно указать порядок соединения столбцов. Есть кнопка, по клику на которую на следующем листе все соединяется. Пример и код прикрепляю. Знаю, что соединение реализуется через &, но не знаю, как это все описать(( Подскажите плиз..
Код
 
  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.06.2017 18:06:49
 
в .xlsx формы не живут. прикрепите файл с формой.
Изменено: V - 13.06.2017 17:55:54
 
прикрепила
 
Заготовка на циклах без учета ранжирования и активного чекбокса.
 
Ммм, странно, но не пашет:
http://i.imgur.com/4SiwAqn.png
http://i.imgur.com/pNhKlOX.png
 
и еще, мне нужно, чтобы не в каждом столбце были слова, а в одной ячейке: http://i.imgur.com/b3k1nEt.png
 
результат на "лист2".
ну, я писал, что это заготовка. Видя, Вашу тягу к программированию, оставил пространство для "маневра"

p,s, ввел данные с картинки. у меня отпработало
Изменено: Grr - 14.06.2017 11:32:53
 
Цитата
Grr написал: ввел данные с картинки
БАлуете Вы ТСа...

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Офф
Цитата
JayBhagavan написал: БАлуете Вы ТСа
может ТСшу?, т.к.
Цитата
kamlayka написал: прикрепила
:)  
Согласие есть продукт при полном непротивлении сторон
 
Может вы тогда еще кое-что подскажите?) Хочу в массив запихнуть количество заполненных ячеек в каждом столбце. На мой код ругается, что я пишу не так?

Код
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.06.2017 12:29:36
 
Пробуйте так. Но за вопрос не по теме могут наругать
Код
   Dim r()
   
    n = Sheets("Лист1").UsedRange.Column + Sheets("Лист1").UsedRange.Columns.Count - 1

    ReDim r(n - 1)
 
    For ii = 0 To n - 1
        r(ii) = Sheets("Лист1").Cells(Rows.Count, ii + 1).End(xlUp).Row
    Next

Изменено: Grr - 14.06.2017 12:49:09
 
Grr, при чём тут "наругать"? Потом человек с аналогичным вопросом не найдёт ответа и ему придётся создавать свою тему, хотя ответ уже и был на форуме.
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, я не оспариваю целесообразность данного правила. Да, и в целом правила данного форума мне импонируют.
Ответил в контексте. Может спасибо получу :) от ТС
Страницы: 1
Наверх