Возврат каждый п-й элемент с помощью VBA в Microsoft Excel
В случае, если вам интересно, как кто-то может найти каждый n-й элемент в столбце. В этой статье мы узнаем, как вернуть каждый n-й элемент из списка. Мы будем использовать код VBA, чтобы найти результат .
Вопрос: я хочу, чтобы код макроса извлекал каждое n-е значение из столбца. Я пытаюсь перенести значения из одного листа / столбца в другой лист / столбец. Я пробовал использовать многие функции, такие как СМЕЩЕНИЕ, но не мог понять формулу, которая может дать результат.
Давайте возьмем пример из 100 значений в столбце A, и мы хотим узнать каждое 10 ^ th ^ значение в столбце B. Примеры значений, начиная с ячейки A1, равной 1, до ячейки A100, равной 100; ниже приведен снимок данных в столбце A:
Чтобы получить результат, нам нужно выполнить следующие шаги, чтобы запустить редактор VB. Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic
-
Скопируйте приведенный ниже код в стандартный модуль
Function INDEXN(InputRange As Range, N As Integer) As Variant ' returns every N-th item from InputRange' --- Comment ' select the desired target range for the function and' --- Comment ' enter as an array function with Ctrl+Shift+Enter.' --- Comment Dim ItemList() As Variant, c As Range, i As Long, iCount As Long i = 0 iCount = 0 ReDim ItemList(1 To InputRange.Cells.Count \ N) For Each c In InputRange i = i + 1 If i Mod N = 0 Then iCount = iCount + 1 On Error Resume Next ItemList(iCount) = c.Value On Error GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count >= InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose(INDEXN) End If Erase ItemList End Function
Чтобы получить каждый n-й элемент в диапазоне B1: B10, формула имеет вид \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Примечание: это формула массива; следовательно, клавиши Ctrl + Shift + End должны быть нажаты вместе
Чтобы получить каждое седьмое значение ^ из диапазона A1: A100; мы изменим последний аргумент с 10 на 7 и формула будет \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}
Таким образом, мы можем вернуть каждый n-й элемент с одного листа на мастер-лист.
Формула на другом листе будет содержать ссылку на лист \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}
Заключение: с помощью указанной выше функции, определяемой пользователем, мы можем гибко узнавать каждый n-й элемент с одного листа на другой.
Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook. Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]