Чтобы получить неделю от даты Введите дату и получите номер недели для этой даты. Код Sub WeekDate() Dim InputDate As Date Dim week As Long InputDate = Now 'Change to desired date/cell week =...
Это не утверждение Not . Ваша проблема заключается в том, что при удалении ячейки изменяется диапазон, и поэтому в вашем цикле отсутствуют данные. Если ячейка A49 удалена, то значение в A50...
Вот пример. Предположим, я хочу использовать A1:B3 в качестве массива: Private Sub Workbook_Open() Dim rng As Range Set rng = Worksheets(1).Range(A1:B3) arr = rng.Value End Sub Public arr As Variant...
Пришлось опубликовать в качестве ответа: Этот код страдает от отсутствия заголовка 'Option Explicit'. Переменная varSheetISS передается безрассудно. Он начинает жизнь как рабочий лист, а затем...
http://wiki.imacros.net/Web_Scripting#Connect_Excel_to_the_Web Просто FYI - активация iMacro через Excel доступна только в корпоративной (не бесплатной) версии. Пробная версия, включенная в...
Простым последовательным типом данных list будет Collection . Кроме того, ассоциативный массив доступен через CreateObject(Scripting.Dictionary) . Dim c As Collection Set c = New Collection c.Add 4
Привет, если вы хотите прочитать regesty в Excel, вы можете сделать это таким образом. Sub test() Dim strPath As String strPath = RegKeyRead(HKEY_CURRENT_USER\Volatile Environment\HOMESHARE) End Sub...
Чтобы пользователь переключил ActiveSheet, Excel должен обработать пользовательские события . Опытные программисты VBA обычно позволяют Excel обрабатывать пользовательские события , явно вызывая...
AFAIK Это недоступно out of the box. Сказав это, вы можете достичь функциональности Delegate , используя вызовы WIN32 API (от user32.dll ). Вот пример кода: Option Explicit '-----External Library...
Вы можете попробовать добавить дополнительно Application.Volatile False в самом начале, в первом ряду внутри вас действуют, как: Public Function MyTableResults(Code As String) As Variant...
Как насчет этого кода?.. Option Explicit Private c As Integer Sub test_print_nCr() print_nCr 5, 3, Range(A1) End Sub Function print_nCr(n As Integer, r As Integer, p As Range) c = 1...
Вам необходимо указать диапазон, который вы хотите отфильтровать. Например: ThisWorkbook.Worksheets(MyAwesomeSheet).Range(B3:C11).AutoFilter field:=2, Criteria1:=sCriteria Метод автофильтра в...
Как указано в одном комментарии, вы должны согласиться .findnext; с учетом сказанного, я попробую это: Sub finddata() Dim North As Long Dim finalrow As Long Dim i As Long Dim count As Long...
Это не так, как вы запускаете формулу в VBA. Некоторые функции доступны в объекте Application (включая VLookUp ). Set cl = Range(Application.VLookup(i, Range(a7:b28), 2, False)) Для других...
Попробуйте это Sub Sample() Dim oRange As Range, aCell As Range, bCell As Range Dim ws As Worksheet Dim ExitLoop As Boolean Dim SearchString As String, FoundAt As String On Error GoTo Err Set ws =...
Это UDF вернет абсолютное значение разницы в секундах Public Function tDiff(s1 As String, s2 As String) As Double ' ' calculates the absolute value of the differences ' returns the answer in seconds...
Вы можете попробовать запустить бесплатный очиститель кода VBA на случай, если возникнут проблемы с VBA. Он экспортирует все модули, удаляет их из проекта, а затем повторно импортирует их, что...
Похоже, что ваш цикл повторяется через каждую строку или каждый столбец на листе. Вместо использования последней строки или последнего столбца попробуйте использовать последнюю используемую строку...
Обновление : Что бы я сделал, так это создал Listbox с двумя столбцами: Private Sub UserForm_Initialize() Dim row As Integer ListBox1.ColumnCount = 2 ListBox1.ColumnWidths = 50;150 For row = 3 To 10...
Цикл vba for увеличивает переменную индекса в конце каждой итерации. Это то, что делает ключевое слово Next . В sum1() Вы получите: Sub sum1() Dim x As Integer x = 0 ' x is 0 For x = 5 To 5 ' x set...
Это vba.. нет string.substring ;) это больше похоже на VB 6 (или любой другой ниже).. таким образом, вы застряли с mid, instr, len (чтобы получить полный len строки).. Я думаю, что вы пропустили...
Попробуйте сделать это, определив объект Range с помощью Sheet : Set rng1 = Sheets(1).Range(TableColumn1) Set rng2 = Sheets(1).Range(TableColumn2) Set rngAll = Application.Union(rng1, rng2) Затем в...
Учащиеся должны быть объявлены как динамический массив. То есть массив, границы которого можно изменить. Dim Students(10) дает массив, границы которого не могут быть изменены и не могут быть...