Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Перекрёстный рандом из коллекции уникальных?
 
Здравствуйте.Уважаемые сверхзнатоки vba,не первый год пишу для себя макросы,но на этот раз вошёл в ступор.Не получается сгенерировать рандом уникальных в коллекции,что-бы были в столбце и в строке уникальные из коллекции без повторений и без пустых ячеек,как в примере.Перепробовал много вариантов и безрезультатно,этот код оставляет тоже пустые ячейки.

Sub Проверка11()
      Application.ScreenUpdating = False
Dim j&, i&, a&, b&, c&, m&, d&, v&, arr(), r As New Collection
arr = [a1:d4].Value
b = 1:  a = 1:
For c = 1 To 4
r.Add 99
r.Add 88
r.Add 77
r.Add 66
    Randomize
 For i = 1 To 4
j = CInt((4 - i) * Rnd + 1)
t = r.Item(j)
If arr(a + d, b + m) = Empty Then
For v = 1 To 4
If arr(a + k, b + m) = t Then
m = m + 1
k = 0
Exit For
Else
k = k + 1
 End If
Next v
If k = 4 Then arr(a + d, b + m) = t: k = 0: m = m + 1
Else
m = m + 1
If m = 4 Then m = 0
End If
If m = 4 Then m = 0
r.Remove (j)
Next i
d = d + 1
m = 0
Next c
[a1:d4].Value = arr
Application.ScreenUpdating = True
End Sub
Сортировка в алфавитном порядке по двум столбцам сверху вниз ?
 
Здравствуйте , уважаемые форумчане . Подскажите пожалуйста , как произвести сортирровку в алфавитном порядке с верху вниз, учитывая два столбца с Данными (текст). Не важно в каком столбце находится команда по алфавиту B или D . Переносить вместе с ячейкой счёта и ячейкой время матча .
Макрос-то останавливается , но процессор загружен .?
 
Уважаемые форумчане , подскажите пожалуйста . Вот код останавливает выполнение макроса :  
 
Application.Wait Now + TimeValue("00:30:00")  
 
Но я обратил внимание макрос , то останавливается но процессор работает , как-будто макрос продолжает работу . Воэможно-ли остановить макрос , с отдыхом для компьютера ?
Как указать это условие для макроса? Нахождение одного значение относительно другого
 
Уважаемые форумчане ! Подскажите пожалуйста , есть два столбца B и C (в каждом по одному значению ) . Как указать условие , если значение в столбце "В" дальше или рядом со значением столбца "С"(имеется ввиду от первой строки)?
Как в макросе инициализировать, отключение компьютера , после выполнения макроса ?
 
Уважаемые форумчане , подскажите пожалуйста .  
Как в макросе инициализировать, отключение компьютера , после выполнения макроса ? Или как пишется , кнопка отключения компьютера  в vb?
Макрос суммирование в цикле по строкам , -(без формулы массива) ?
 
Уважаемые форумчане . Скажите пожалуйста , возможно - ли пройти в цикле по строкам    
For iRow = 1 To 5000    
Next  
и суммировать при условии (если а>0 , e>0 , тогда i=a+e ; если b>0, f>0 ; тогда j=b+f ;если с>0 , g>0 ; тогда k=c+g и так далее...) . Смысл в том , что условий может быть сколько угодно (такого плана), на строку .  Возможно - ли , что-бы проходя каждую строку выполнялись все эти условия ? Подскажите пожалуйста ,как записать , если вам не затруднительно .
Как вставить СтатусБар с циклом , в макрос с несколькими циклами ?
 
Уважаемые форумчане подскажите , пожалуйста . Здесь на форуме и на других , много искал , но об этом конкретной информации нет . Вот макросы СтатусБара :  
 
 
 
Sub test1()  
   For i = 1 To 10000  
       p = i \ 100: s = "": For j = 10102 To 10102 + p \ 10: s = s & ChrW(j): Next  
       Application.StatusBar = "Выполнено: " & p & "% " & s: DoEvents: DoEvents  
   Next  
   Application.StatusBar = False  
End Sub  
 
 
Sub test2()  
   For i = 1 To 10000  
       p = i \ 100: s = String(p \ 10, ChrW(10152)) & String(10 - p \ 10, ChrW(8700))  
       Application.StatusBar = "Выполнено: " & p & "% " & s: DoEvents  
   Next  
   Application.StatusBar = False  
End Sub  
 
 
Вопрос :  Как один из них , можно вложить в мой макрос (мне нужно все листы прогнать без остановки).  
Вот мой макрос:  
 
                           
Sub Макрос4()  
Dim i As Variant  
Application.ScreenUpdating = True  
For i = 1 To 1500  
Worksheets(i).Select  
Sheets.Add After:=Sheets(Sheets.Count)  
Dim c As Range  
For Each c In Range("A1:G900,J1:P900,S1:Y900").Cells  
  Randomize  
c.Value = Int((2 * Rnd) + 1)  
Next c  
 
(здесь ещё код , но без цикла)  
 
Next i  
Application.ScreenUpdating = False  
End Sub
Копирование данных с множества листов и вставкой на один лист , с постоянным смещением .
 
ЗДРАВСТВУЙТЕ УВАЖАЕМЫЕ ФОРУМЧАНЕ! Подскажите  пожалуйста , если знаете  , может есть такой код, есть больше тысячи листов в каждом по несколько таблиц , как автоматически скопировать данные с каждого листа с нескольких диапазонов (E1:E29;J1:J29)(диапазоны для копирования у всех листов одинаковые)  и вставить их на один новый лист , с постоянным смещением через ячейку в право , что-бы не уничтожились прежние данные. К примеру : с первого листа вставляется в диапазон A1:A29;B1:B29 , со второго в D1:D29;E1:E29 , с третьего в G1:G29;H1:H29 и т.д
Цикл , для всех таблиц на листе ?
 
УВАЖАЕМЫЕ ФОРУМЧАНЕ! ЗНАТОКИ VISUAL BASIK! Циклы для выполнения одной операции , автоматически для всех листов существуют вот два из них :    
 
Sub Макрос3()  
Dim i As Variant  
For i = 1 To Excel.Worksheets.Count  
Worksheets(i).Select  
'здесь действия над листом(новое вставлять сюда)  
 
Next i  
MsgBox "Все сделано!"  
End Sub  
 
или  
 
 
Sub qwerty()  
Dim n As Integer  
n = Sheets.Count  
For i = 1 To Excel.Worksheets.Count  
Sheets(i).Activate  
'здесь действия над листом(новое вставлять сюда)  
Next  
MsgBox "Все сделано!"  
End Sub  
 
 
А есть-ли код , для всех таблиц на листе , что-бы автоматически выполнял одну и ту же операцию для всех таблиц ? Если есть , напишите пожалуйста код .
Копирование,если соответствует заданному критерию .
 
УВАЖАЕМЫЕ ФОРУМЧАНЕ! ЗНАТОКИ VISUAL BASIK! Прошу у Вас помощи , есть четыре масива, с одинаковой размерностью , надо сравнить по две между собой и копировать диапазон , с теми условиями которые соответствуют истине ("es"), только ниже , через строку . Ньюанс в том , что может быть и 200 пар для сравнения.
Страницы: 1
Наверх