Private Sub CommandButton1_Click() Call sheetform Unload Me End Sub
Sub test(ByRef arrtest#()) 'Заполняем массив случайными числами из текстбокса ReDim arrtest(1 To Val(Tb1.Text), 1 To 2)
For i = 1 To UBound(arrtest, 1) j = 1 arrtest(i, j) = i ' номер итерации arrtest(i, j + 1) = Round(Tb1.Value * 99 * Rnd, 2) ' случайное число полученное умножением числа введенного в текстбоксе на генератор Next i End Sub
' Выводим данные массива arrtest на новый лист после нажатия кнопки exit
Sub sheetform() Application.ScreenUpdating = False
'Создаем новый лист с помощью объектной переменной (в этом случае новый лист создается строго перед активным листом и нигде больше)
Dim SheetTest As Worksheet Dim Celltest As Range Dim currow As Integer ' переменная для счетчика строк Dim arrtest#() 'массива случайных чисел currow = 1
'вставляем названия ячеек на созданный лист ' Заголовки столбцов SheetTest.Cells(currow, 1) = "№ Периода" SheetTest.Cells(currow, 2) = "Тестовое случайное значение"
test arrtest ' вызываем процедуру заполнения массива arrtest случайными числами
' Заполняем лист данными из массива arrtest, куда мы предварительно внесли все расчетные значения ,ячейки таблицы With SheetTest.Cells(currow + 1, 1).Resize(UBound(arrtest, 1), UBound(arrtest, 2)) .Columns(2).NumberFormat = "#,##0.00" .Value = arrtest End With End Sub
[/vba]
[vba]
Код
Option Explicit
Private Sub CommandButton1_Click() Call sheetform Unload Me End Sub
Sub test(ByRef arrtest#()) 'Заполняем массив случайными числами из текстбокса ReDim arrtest(1 To Val(Tb1.Text), 1 To 2)
For i = 1 To UBound(arrtest, 1) j = 1 arrtest(i, j) = i ' номер итерации arrtest(i, j + 1) = Round(Tb1.Value * 99 * Rnd, 2) ' случайное число полученное умножением числа введенного в текстбоксе на генератор Next i End Sub
' Выводим данные массива arrtest на новый лист после нажатия кнопки exit
Sub sheetform() Application.ScreenUpdating = False
'Создаем новый лист с помощью объектной переменной (в этом случае новый лист создается строго перед активным листом и нигде больше)
Dim SheetTest As Worksheet Dim Celltest As Range Dim currow As Integer ' переменная для счетчика строк Dim arrtest#() 'массива случайных чисел currow = 1
'вставляем названия ячеек на созданный лист ' Заголовки столбцов SheetTest.Cells(currow, 1) = "№ Периода" SheetTest.Cells(currow, 2) = "Тестовое случайное значение"
test arrtest ' вызываем процедуру заполнения массива arrtest случайными числами
' Заполняем лист данными из массива arrtest, куда мы предварительно внесли все расчетные значения ,ячейки таблицы With SheetTest.Cells(currow + 1, 1).Resize(UBound(arrtest, 1), UBound(arrtest, 2)) .Columns(2).NumberFormat = "#,##0.00" .Value = arrtest End With End Sub
Function UsedRng(Optional ByRef r As Range) As Range Set UsedRng = IIf(r Is Nothing, Application.Caller, r).Parent.UsedRange End Function
[/vba] Определение имени ВсеСтроки заменил на
Код
=UsedRng(Лист1!$A$1)
Ошибка была из-за того, что функция UsedRng возвращала использованный диапазон листа, на котором находится ячейка, из которой эта функция вызывается, т.е. ВсеСтроки - диапазон с Лист2, а столбцы с Лист1, а пробел между диапазонами в формуле - оператор пересечения.
заменил UDF [vba]
Код
Function UsedRng(Optional ByRef r As Range) As Range Set UsedRng = IIf(r Is Nothing, Application.Caller, r).Parent.UsedRange End Function
[/vba] Определение имени ВсеСтроки заменил на
Код
=UsedRng(Лист1!$A$1)
Ошибка была из-за того, что функция UsedRng возвращала использованный диапазон листа, на котором находится ячейка, из которой эта функция вызывается, т.е. ВсеСтроки - диапазон с Лист2, а столбцы с Лист1, а пробел между диапазонами в формуле - оператор пересечения.krosav4ig
Добрый день Функция отправки Xlsx тут функция для создания триггера [vba]
Код
function createTimeDrivenTrigger() { // Trigger every day at 09:00. ScriptApp.newTrigger('send_report_email') .timeBased() .everyDays(1) .atHour(9) .create(); }
[/vba]
Добрый день Функция отправки Xlsx тут функция для создания триггера [vba]
Код
function createTimeDrivenTrigger() { // Trigger every day at 09:00. ScriptApp.newTrigger('send_report_email') .timeBased() .everyDays(1) .atHour(9) .create(); }
Private Sub CommandButton1_Click() Dim iPR As Long iPR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iPR, 2) = txt_¹ Cells(iPR, 3) = txt_fio Cells(iPR, 4) = txt_email Cells(iPR, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i) End If Next End With Cells(iPR, 6) = Mid(s, 2) Cells(iPR, 7) = txt_stat Cells(iPR, 8) = txt_cok Cells(iPR, 9) = txt_raspor Unload UserForm1 ThisWorkbook.Save End Sub
Private Sub CommandButton2_Click() 'êîä äëÿ "Ñîõðàíèòü îòðåäàêòèðîâàííûé äàííûå" 'If Edit_Copy = "Edit" Then Cells(ActiveCell.Row, 2) = txt_¹ Cells(ActiveCell.Row, 3) = txt_fio Cells(ActiveCell.Row, 4) = txt_email Cells(ActiveCell.Row, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i)
End If Next End With Cells(ActiveCell.Row, 6) = Mid(s, 2) Cells(ActiveCell.Row, 7) = txt_stat Cells(ActiveCell.Row, 8) = txt_cok Cells(ActiveCell.Row, 9) = txt_raspor
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UserForm1.txt_¹ = CStr(Cells(Selection.Rows.Row, 2).Value) UserForm1.txt_fio = CStr(Cells(Selection.Rows.Row, 3).Value) UserForm1.txt_email = CStr(Cells(Selection.Rows.Row, 4).Value) UserForm1.txt_tel = CStr(Cells(Selection.Rows.Row, 5).Value) Dim arr, i arr = Split(CStr(Cells(Selection.Rows.Row, 6).Value), ",") If IsArray(arr) Then With UserForm1.txt_kvalif For i = 0 To .ListCount - 1 If UBound(Filter(arr, .List(i), , vbTextCompare)) > -1 Then .Selected(i) = True End If Next End With End If UserForm1.txt_stat = CStr(Cells(Selection.Rows.Row, 7).Value) UserForm1.txt_cok = CStr(Cells(Selection.Rows.Row, 8).Value) UserForm1.txt_raspor = CStr(Cells(Selection.Rows.Row, 9).Value) UserForm1.Show vbModeless End Sub
[/vba]
[vba]
Код
Private Sub CommandButton1_Click() Dim iPR As Long iPR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iPR, 2) = txt_¹ Cells(iPR, 3) = txt_fio Cells(iPR, 4) = txt_email Cells(iPR, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i) End If Next End With Cells(iPR, 6) = Mid(s, 2) Cells(iPR, 7) = txt_stat Cells(iPR, 8) = txt_cok Cells(iPR, 9) = txt_raspor Unload UserForm1 ThisWorkbook.Save End Sub
Private Sub CommandButton2_Click() 'êîä äëÿ "Ñîõðàíèòü îòðåäàêòèðîâàííûé äàííûå" 'If Edit_Copy = "Edit" Then Cells(ActiveCell.Row, 2) = txt_¹ Cells(ActiveCell.Row, 3) = txt_fio Cells(ActiveCell.Row, 4) = txt_email Cells(ActiveCell.Row, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i)
End If Next End With Cells(ActiveCell.Row, 6) = Mid(s, 2) Cells(ActiveCell.Row, 7) = txt_stat Cells(ActiveCell.Row, 8) = txt_cok Cells(ActiveCell.Row, 9) = txt_raspor
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UserForm1.txt_¹ = CStr(Cells(Selection.Rows.Row, 2).Value) UserForm1.txt_fio = CStr(Cells(Selection.Rows.Row, 3).Value) UserForm1.txt_email = CStr(Cells(Selection.Rows.Row, 4).Value) UserForm1.txt_tel = CStr(Cells(Selection.Rows.Row, 5).Value) Dim arr, i arr = Split(CStr(Cells(Selection.Rows.Row, 6).Value), ",") If IsArray(arr) Then With UserForm1.txt_kvalif For i = 0 To .ListCount - 1 If UBound(Filter(arr, .List(i), , vbTextCompare)) > -1 Then .Selected(i) = True End If Next End With End If UserForm1.txt_stat = CStr(Cells(Selection.Rows.Row, 7).Value) UserForm1.txt_cok = CStr(Cells(Selection.Rows.Row, 8).Value) UserForm1.txt_raspor = CStr(Cells(Selection.Rows.Row, 9).Value) UserForm1.Show vbModeless End Sub