Защо Range(cells(1,3),cells(Ubound(Arr)+1,3)) се променя така?

MS Excel
Електронни таблици
MS Office
Excel VBA
Програмиране
VBA за Excel

Когато попълвам масива с оператор For i = 1 to last_row..., след това при копирането в колона С, започва да го попълва от клетка С2. Въпреки че за начало на Range е зададено cells(1,3).

Знам, че ако попълня масива с оператор For i = 0 to last_row..., след това се попълва коректно от клетка С1:

!

Само че ми убягва логическото обяснение за това. Може ли да ми разясните защо става така? Благодаря предварително!

По подразбиране, първият елемент на масива има индекс 0, това е стойността на LBound. Когато определяте i = 1, попълването започва от втория елемент, който има индекс 1. Елементите на масива се попълват със стойностите, но индексите са отместени с 1 - първият елемент на масива Arr(0) е празен и се записва в С1, вторият елемент Arr(1) се записва в С2. Масивът има 23 елемента, защото UBound = last_row = 22. Когато определяте i=0, тогава диапазонът включва един празен ред, това е последният елемент Arr(22), но масивът също има 23 елемента. Объркването идва от първия елемент на масива, който има индекс 0. За да видите сама как се записват данните от масива, добавете инструкция rng.Select, след дефинирането на rng (Set rng = ...) Надявам се, че отговорих на въпроса. Разбира се, ако имате още въпроси, пишете.

Сега вече ми се разясни. Благодаря за отговора!

Вашият отговор:

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Име
    Имейл
     
    love


    © 2020 Учебен център "Аула". Всички права запазени.
    Autodesk AutoCAD, Autodesk Inventor, Autodesk Civil 3D, Autodesk Revit, Autodesk 3ds Max, Autodesk Maya, Microsoft Word, Microsoft Outlook, Microsoft Excel, SharePoint Online, Microsoft PowerPoint, Microsoft Project, Microsoft, Adobe Photoshop, Adobe Illustrator, Adobe InDesign, Adobe After Effects, Adobe Premiere, Adobe Dreamweaver, V-Ray, Ableton Live, Solidworks са регистрирани търговски марки на Adobe Systems Incorporated, Microsoft Corporation, Chaos Software Ltd, Autodesk Inc., Ableton и Dassault Systèmes SolidWorks Corp.