1513 / 483 / 57
Регистрация: 10.04.2009
Сообщений: 8,213
|
||||||||||||||||
1 | ||||||||||||||||
Какие есть ограничения на объявление переменных12.08.2011, 16:44. Показов 9598. Ответов 10
Метки нет Все метки)
(
Здравстуйте, подскажите, когда объявляешь массив какие есть ограничения
делаю так
делаю так, так как подумал, может нельзя сразу прибавлять
Как нужно??? ну если просто число то понятно, а если хочется переменную, как быть??? 2 пишу так
Переменная у меня объявлена: Const Добавить_строк As Byte = 32 Спасибо
0
|
|
12.08.2011, 16:44 | |
Ответы с готовыми решениями:
10
есть ли какие-то ограничения Excel ? Visual C++ Express какие есть ограничения? Какие у C# Express есть ограничения по работе с базами данных Какие есть ограничения при создании ВЧ передающих устройств? |
1513 / 483 / 57
Регистрация: 10.04.2009
Сообщений: 8,213
|
|
12.08.2011, 16:57 [ТС] | 3 |
там просто redim надо ставить или с пресервами??
0
|
12.08.2011, 17:17 | 4 |
Remarks
The ReDim statement is used to size or resize a dynamic array that has already been formally declared using a Private, Public, or Dim statement with empty parentheses (without dimension subscripts). You can use the ReDim statement repeatedly to change the number of elements and dimensions in an array. However, you can't declare an array of one data type and later use ReDim to change the array to another data type, unless the array is contained in a Variant. If the array is contained in a Variant, the type of the elements can be changed using an As type clause, unless you're using the Preserve keyword, in which case, no changes of data type are permitted. If you use the Preserve keyword, you can resize only the last array dimension and you can't change the number of dimensions at all. For example, if your array has only one dimension, you can resize that dimension because it is the last and only dimension. However, if your array has two or more dimensions, you can change the size of only the last dimension and still preserve the contents of the array. The following example shows how you can increase the size of the last dimension of a dynamic array without erasing any existing data contained in the array. ReDim X(10, 10, 10) . . . ReDim Preserve X(10, 10, 15) Similarly, when you use Preserve, you can change the size of the array only by changing the upper bound; changing the lower bound causes an error. If you make an array smaller than it was, data in the eliminated elements will be lost. If you pass an array to a procedure by reference, you can't redimension the array within the procedure. When variables are initialized, a numeric variable is initialized to 0, a variable-length string is initialized to a zero-length string (""), and a fixed-length string is filled with zeros. Variant variables are initialized to Empty. Each element of a user-defined type variable is initialized as if it were a separate variable. A variable that refers to an object must be assigned an existing object using the Set statement before it can be used. Until it is assigned an object, the declared object variable has the special value Nothing, which indicates that it doesn't refer to any particular instance of an object.
0
|
1513 / 483 / 57
Регистрация: 10.04.2009
Сообщений: 8,213
|
||||||
12.08.2011, 17:44 [ТС] | 5 | |||||
что толку читать Хелп, хоть и Гугл помогает:
Заявление ReDim используется по размеру или размер динамического массива, который уже был официально объявлен с использованием Private, Public или Dim заявление с пустыми скобками (без измерения индексов). Вы можете использовать ReDim в заявлении несколько раз для изменения числа элементов и измерений в массиве. Однако Вы не можете объявить массив одного типа данных и в дальнейшем использовать ReDim изменять массив в другой тип данных, если массив содержится в Variant. Если массив содержится в Variant, тип элементов могут быть изменены с помощью как тип пункта, если вы не используете ключевое слово заповедника, в этом случае, никакие изменения типа данных не допускаются. Если вы используете заповедник ключевого слова, вы можете изменить размер только последней размерности массива, и Вы не можете изменить число измерений на всех. Например, если массив имеет только одно измерение, Вы можете изменить размер этого измерения, потому что это последний и единственный аспект. Тем не менее, если массив состоит из двух или более измерений, Вы можете изменить размер только последней размерности и сохранить содержимое массива. Следующий пример показывает, как можно увеличить размер последней размерности динамического массива без стирания существующих данных, содержащихся в массиве. ReDim X (10, 10, 10) ReDim Preserve X (10, 10, 15) Аналогичным образом, когда вы используете заповедника, вы можете изменить размер массива только путем изменения верхней границы, изменение нижней границы приводит к ошибке. Если вы сделаете массива меньше, чем это было, данные в устранены элементы будут потеряны. Если вы передаете массив в процедуру по ссылке, вы не можете redimension массива внутри процедуры. Когда переменные инициализируются, числовая переменная инициализируется в 0, строка переменной длины инициализируется нулевой длины (""), строки и строки фиксированной длины заполняется нулями. Вариант переменные инициализируются пустой. Каждый элемент пользовательского типа переменной инициализируется так, как если бы он был отдельной переменной. Переменная, которая ссылается на объект, должен быть назначен существующего объекта с использованием набора заявлении, прежде чем он может быть использован. Пока он не назначен объекта, заявленного объекта переменная имеет специальное значение Nothing, которое указывает, что это не относится к какой-либо конкретный экземпляр объекта. То что я спрашиваю имеет ответ из одного предложения, а тут масло масляное, можете одним предложением ответить?? Добавлено через 13 минут разобрался по русски если надо объявить массив можно указать размер массива, только указав его значение: Dim Данные() As String если надо изменить размер массива или указать переменную как значение размера массива: ReDim Preserve Данные(Цикл + Добавить) или ReDim Preserve Данные(Добавить) изменять можно много раз а можно плюнуть если примерно знаешь нужное количество и воспользоваться здравым смыслом, указать, экономится одна строка, как бальзам на душу Dim Данные(999) As String осталось по вопросу:
0
|
Заблокирован
|
|
12.08.2011, 17:52 | 6 |
Ципихович Эндрю,
нельзя переменные использовать при объявлении массива. Если используешь переменные, то появляется сообщение при запуске кода: Constant expression required. Что означает, что требуется константа (т.е. непеременная) при указании размера массива.
1
|
1513 / 483 / 57
Регистрация: 10.04.2009
Сообщений: 8,213
|
||||||
12.08.2011, 18:02 [ТС] | 7 | |||||
Загадка ВБАшная, просто надо принять к сведению и всё
по вопросу пишу так
Переменная у меня объявлена: Const Добавить_строк As Byte = 32 не знаете??
0
|
Заблокирован
|
|
12.08.2011, 18:07 | 8 |
Не надо указывать Добавить_строк. Будет вставлено столько строк, сколько выделено. Надо в справку иногда заглядывать, там примеры есть.
1
|
1513 / 483 / 57
Регистрация: 10.04.2009
Сообщений: 8,213
|
|
12.08.2011, 18:10 [ТС] | 9 |
мой разум это не может понять, придётся тоже запомнить
0
|
Заблокирован
|
|
12.08.2011, 18:12 | 10 |
так запрограммировано - для этого справка с примерами и существует, чтобы пользоваться VBA.
0
|
12.08.2011, 19:42 | 11 |
0
|
12.08.2011, 19:42 | |
Помогаю со студенческими работами здесь
11
Определить или протестировать, есть ли в конфигурации какие-либо ограничения по ее функционалу Есть ли какие-то ограничения на количество или объем передаваемых сервлету параметров из HTML?
Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |