Върнете всеки n-ти елемент, използвайки VBA в Microsoft Excel

Anonim

В случай, че се чудите как някой може да намери всеки n -ти елемент в колона. В тази статия ще научим как да върнем всеки n-ти елемент от списък. Ще използваме VBA код, за да намерим резултата.

Въпрос: Искам макро код да извлече всяка n -та стойност от колона. Опитвам се да изтегля стойности от един лист / колона в друг лист / колона. Опитах се да използвам много функции като OFFSET, но не успях да разбера формулата, която може да даде резултат.

Нека вземем пример от 100 стойности в колона А и искаме да разберем всеки 10th стойност в колона В

Стойностите на пробата, започващи от клетка А1, равна на 1 до клетка А100, равна на 100; Следва моментната снимка на данните в колона А:

За да получим резултат, трябва да следваме стъпките по -долу, за да стартираме VB редактор

  • Кликнете върху раздела Разработчик
  • От групата Кодове изберете Visual Basic

  • Копирайте кода по -долу в стандартния модул
 Функция INDEXN (InputRange As Range, N As Integer) As Variant 'връща всеки N-ти елемент от InputRange' --- Comment 'избира желания целеви диапазон за функцията и' --- Comment 'въвежда като функция на масив с Ctrl +Shift+Enter. ' --- Коментирайте Dim ItemList () като вариант, c като диапазон, i като дълъг, iCount колкото дълъг i = 0 iCount = 0 ReDim ItemList (1 към InputRange.Cells.Count \ N) За всеки c In InputRange i = i + 1 Ако i Mod N = 0, тогава 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 Тогава INDEXN = Application.WorksheetFunction.Transpose (INDEXN) End If Erase ItemList Крайна функция 

  • За да получите всеки n -ти елемент в диапазон B1: B10, формулата е
  • {= ИНДЕКС ($ A $ 1: $ A $ 100, 10)}

Забележка: това е формула на масив; следователно клавишите Ctrl + Shift + End трябва да бъдат натиснати заедно

  • За да получите всеки 7th стойност от диапазон A1: A100; ще променим последния аргумент от 10 на 7 и формулата ще бъде
  • {= ИНДЕКС ($ A $ 1: $ A $ 100, 7)}

По този начин можем да върнем всеки n-ти елемент от един лист в главен лист.

  • Формулата в друг лист ще съдържа препратка към лист
  • {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

Заключение: С помощта на горната функция, дефинирана от потребителя, можем да имаме гъвкавост да открием всеки n-ти елемент от един лист на друг.

Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook. Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта