Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обмен знаниями: VBA-массивы на Tableau (Москва) - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: китин  
Мир MS Excel » Работа и общение » Неформальное общение » Обмен знаниями: VBA-массивы на Tableau (Москва) (Предлагаю обменяться знаниями в формате личной встречи.)
Обмен знаниями: VBA-массивы на Tableau (Москва)
SkyPro Дата: Вторник, 10.06.2014, 13:11 | Сообщение № 21
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010

Специально его упустил, дабы не запутать в самом начале. Меня этот оптион бейс очень заморочил в начале понимания массивов.


skypro1111@gmail.com
 
Ответить
Сообщение
Специально его упустил, дабы не запутать в самом начале. Меня этот оптион бейс очень заморочил в начале понимания массивов.

Автор - SkyPro
Дата добавления - 10.06.2014 в 13:11
SkyPro Дата: Вторник, 10.06.2014, 13:38 | Сообщение № 22
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Еще картинку подготовил:


И раз речь о массивах, то рано или поздно станет вопрос их сортировки.
Нашел, как-то статью, которая очень сильно помогла в понимании алгоритмов:
http://habrahabr.ru/post/204600/
К сообщению приложен файл: 4817100.gif (14.4 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Вторник, 10.06.2014, 13:48
 
Ответить
СообщениеЕще картинку подготовил:


И раз речь о массивах, то рано или поздно станет вопрос их сортировки.
Нашел, как-то статью, которая очень сильно помогла в понимании алгоритмов:
http://habrahabr.ru/post/204600/

Автор - SkyPro
Дата добавления - 10.06.2014 в 13:38
Rioran Дата: Вторник, 10.06.2014, 14:43 | Сообщение № 23
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
SkyPro, спасибо, очень доходчивый пример!

Для закрепления успеха написал макрос на одномерных массивах:

[vba]
Код
Sub Item_Generator()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)

Dim X As Byte 'How much Prefixes do we have?
Dim R As Byte 'To make circles run.

X = .Cells(Rows.Count, 1).End(xlUp).Row

'Хотел задать массив нужного размера, но он хочет константу...
'Dim Prefix(1 To X - 3)
'Dim Item(1 To Y - 3)
'Dim Postfix(1 To Z - 3)

Dim Prefix(1 To 18)
Dim Item(1 To 18)
Dim Postfix(1 To 18)

For R = 4 To X
     Prefix(R - 3) = .Cells(R, 1).Value
     Item(R - 3) = .Cells(R, 2).Value
     Postfix(R - 3) = .Cells(R, 3).Value
Next R

.Cells(1, 1).Value = Prefix(Int(Rnd() * (X - 3) + 1))
.Cells(1, 2).Value = Item(Int(Rnd() * (X - 3) + 1))
.Cells(1, 3).Value = Postfix(Int(Rnd() * (X - 3) + 1))

End With
Application.ScreenUpdating = True
End Sub
[/vba]
Хочу продолжения банкета :D
К сообщению приложен файл: Tricks.xlsm (21.0 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеSkyPro, спасибо, очень доходчивый пример!

Для закрепления успеха написал макрос на одномерных массивах:

[vba]
Код
Sub Item_Generator()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)

Dim X As Byte 'How much Prefixes do we have?
Dim R As Byte 'To make circles run.

X = .Cells(Rows.Count, 1).End(xlUp).Row

'Хотел задать массив нужного размера, но он хочет константу...
'Dim Prefix(1 To X - 3)
'Dim Item(1 To Y - 3)
'Dim Postfix(1 To Z - 3)

Dim Prefix(1 To 18)
Dim Item(1 To 18)
Dim Postfix(1 To 18)

For R = 4 To X
     Prefix(R - 3) = .Cells(R, 1).Value
     Item(R - 3) = .Cells(R, 2).Value
     Postfix(R - 3) = .Cells(R, 3).Value
Next R

.Cells(1, 1).Value = Prefix(Int(Rnd() * (X - 3) + 1))
.Cells(1, 2).Value = Item(Int(Rnd() * (X - 3) + 1))
.Cells(1, 3).Value = Postfix(Int(Rnd() * (X - 3) + 1))

End With
Application.ScreenUpdating = True
End Sub
[/vba]
Хочу продолжения банкета :D

Автор - Rioran
Дата добавления - 10.06.2014 в 14:43
_Boroda_ Дата: Вторник, 10.06.2014, 15:01 | Сообщение № 24
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Хотел задать массив нужного размера, но он хочет константу.

Копайтете ReDim
[vba]
Код
Dim a()
x = 5
ReDim a(1 To x)
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Хотел задать массив нужного размера, но он хочет константу.

Копайтете ReDim
[vba]
Код
Dim a()
x = 5
ReDim a(1 To x)
[/vba]

Автор - _Boroda_
Дата добавления - 10.06.2014 в 15:01
SkyPro Дата: Вторник, 10.06.2014, 15:02 | Сообщение № 25
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Цитата
'Хотел задать массив нужного размера, но он хочет константу...

[vba]
Код
Sub изменить_размер_массива()
Dim x
Dim v: v = 10
     ReDim x(1) 'меняем верхнюю границу (нижнюю нельзя)
         MsgBox "Нижняя граница массива = " & LBound(x) & vbNewLine & "Верхняя граница массива = " & UBound(x)
     ReDim x(v) 'меняем верхнюю границу на значение переменной v.
         MsgBox "Нижняя граница массива = " & LBound(x) & vbNewLine & "Верхняя граница массива = " & UBound(x)
End Sub
[/vba]


skypro1111@gmail.com
 
Ответить
Сообщение
Цитата
'Хотел задать массив нужного размера, но он хочет константу...

[vba]
Код
Sub изменить_размер_массива()
Dim x
Dim v: v = 10
     ReDim x(1) 'меняем верхнюю границу (нижнюю нельзя)
         MsgBox "Нижняя граница массива = " & LBound(x) & vbNewLine & "Верхняя граница массива = " & UBound(x)
     ReDim x(v) 'меняем верхнюю границу на значение переменной v.
         MsgBox "Нижняя граница массива = " & LBound(x) & vbNewLine & "Верхняя граница массива = " & UBound(x)
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 10.06.2014 в 15:02
ikki Дата: Вторник, 10.06.2014, 15:05 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
vikttur Дата: Вторник, 10.06.2014, 15:05 | Сообщение № 27
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Штудируйте "Как писать нечитаемый код" в этой же ветке.
Счетчики - i, j, k. Переменным желательно присваивать осознанные имена.
For R = 4 To X - лучше For i = 1 To lRws - 3
Часть названия переменной должна указывать на ее тип, например: lRws - Long, ArrPrefix - массив.
Массив для этой задачи лучше двумерный, для всей таблицы.
Т.к. обработка данных одного листа, можно поместить в модуль листа.
Переменные обычно объявляются сразу после названия процедуры. От этого правила иногда отступаю (для экономии памяти), например: обработка событий листа и переменные нужны только при выполнении части кода.


Сообщение отредактировал vikttur - Вторник, 10.06.2014, 15:08
 
Ответить
СообщениеШтудируйте "Как писать нечитаемый код" в этой же ветке.
Счетчики - i, j, k. Переменным желательно присваивать осознанные имена.
For R = 4 To X - лучше For i = 1 To lRws - 3
Часть названия переменной должна указывать на ее тип, например: lRws - Long, ArrPrefix - массив.
Массив для этой задачи лучше двумерный, для всей таблицы.
Т.к. обработка данных одного листа, можно поместить в модуль листа.
Переменные обычно объявляются сразу после названия процедуры. От этого правила иногда отступаю (для экономии памяти), например: обработка событий листа и переменные нужны только при выполнении части кода.

Автор - vikttur
Дата добавления - 10.06.2014 в 15:05
SkyPro Дата: Вторник, 10.06.2014, 15:10 | Сообщение № 28
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub изменить_размер_массива()
Dim x
Dim rRange As Range
Dim r&, c&
Set rRange = [a1:b4]
            
'    заполним диапазон значением строки и столбца
      For r = 1 To rRange.Rows.Count
          For c = 1 To rRange.Columns.Count
              rRange(r, c) = "строка " & r & "|столбец " & c
          Next
      Next
        
x = rRange.Value 'копируем из диапазона ячеек в двумерный массив.
'    проходим по массиву
      For r = 1 To UBound(x) 'если таким способом заполнять массив, то нижняя граница = 1
          For c = 1 To UBound(x, 2) 'получаем верхнюю границу второй размерности (кол-во столбцов)
              Debug.Print x(r, c)
          Next
      Next

End Sub

[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Вторник, 10.06.2014, 15:12
 
Ответить
Сообщение[vba]
Код
Sub изменить_размер_массива()
Dim x
Dim rRange As Range
Dim r&, c&
Set rRange = [a1:b4]
            
'    заполним диапазон значением строки и столбца
      For r = 1 To rRange.Rows.Count
          For c = 1 To rRange.Columns.Count
              rRange(r, c) = "строка " & r & "|столбец " & c
          Next
      Next
        
x = rRange.Value 'копируем из диапазона ячеек в двумерный массив.
'    проходим по массиву
      For r = 1 To UBound(x) 'если таким способом заполнять массив, то нижняя граница = 1
          For c = 1 To UBound(x, 2) 'получаем верхнюю границу второй размерности (кол-во столбцов)
              Debug.Print x(r, c)
          Next
      Next

End Sub

[/vba]

Автор - SkyPro
Дата добавления - 10.06.2014 в 15:10
SkyPro Дата: Вторник, 10.06.2014, 15:14 | Сообщение № 29
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
ikki, код - отлично. Но код можно и самому написать, если разберешься в алгоритме. А вот разобрать код, не зная алгоритма, много сложнее.


skypro1111@gmail.com
 
Ответить
Сообщениеikki, код - отлично. Но код можно и самому написать, если разберешься в алгоритме. А вот разобрать код, не зная алгоритма, много сложнее.

Автор - SkyPro
Дата добавления - 10.06.2014 в 15:14
Rioran Дата: Вторник, 10.06.2014, 15:42 | Сообщение № 30
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Ребят, использовал Ваши советы и переделал код в угоду гибкости, какой - отражено в файле.

[vba]
Код
Option Explicit
Option Base 1

Sub Item_Generator()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)

Dim X As Long 'How much Prefixes do we have?
Dim Y As Long 'How much Items do we have?
Dim Z As Long 'How much Postfixes do we have?
Dim i As Long 'To make circles run.

Dim Prefix
Dim Item
Dim Postfix

'Measuring our arrays
X = .Cells(Rows.Count, 1).End(xlUp).Row
Y = .Cells(Rows.Count, 2).End(xlUp).Row
Z = .Cells(Rows.Count, 3).End(xlUp).Row

'Putting arrays to a proper condition
ReDim Prefix(X - 3)
ReDim Item(Y - 3)
ReDim Postfix(Z - 3)

'Loading values to arrays

For i = 4 To X
     Prefix(i - 3) = .Cells(i, 1).Value
Next i

For i = 4 To Y
     Item(i - 3) = .Cells(i, 2).Value
Next i

For i = 4 To Z
     Postfix(i - 3) = .Cells(i, 3).Value
Next i

'Random item generated and ready for output transition
.Cells(1, 1).Value = Prefix(Int(Rnd() * (X - 3) + 1))
.Cells(1, 2).Value = Item(Int(Rnd() * (Y - 3) + 1))
.Cells(1, 3).Value = Postfix(Int(Rnd() * (Z - 3) + 1))

End With
Application.ScreenUpdating = True
End Sub
[/vba]
SkyPro, ikki, пока не знаю, зачем может понадобиться сортировка массива, но заметку делаю, что для профи сортировка важна. Мне больше нравится шейкерная пока.

vikttur, статью про нечитабельный код читал пару дней назад, понравилась =) С некоторыми формальными правилами знаком, постепенно внедряю. Но пока вроде не пишу ничего достаточно серьёзного, чтобы держаться полностью "официального" стиля.
К сообщению приложен файл: Tricks_2.xlsm (23.0 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеРебят, использовал Ваши советы и переделал код в угоду гибкости, какой - отражено в файле.

[vba]
Код
Option Explicit
Option Base 1

Sub Item_Generator()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)

Dim X As Long 'How much Prefixes do we have?
Dim Y As Long 'How much Items do we have?
Dim Z As Long 'How much Postfixes do we have?
Dim i As Long 'To make circles run.

Dim Prefix
Dim Item
Dim Postfix

'Measuring our arrays
X = .Cells(Rows.Count, 1).End(xlUp).Row
Y = .Cells(Rows.Count, 2).End(xlUp).Row
Z = .Cells(Rows.Count, 3).End(xlUp).Row

'Putting arrays to a proper condition
ReDim Prefix(X - 3)
ReDim Item(Y - 3)
ReDim Postfix(Z - 3)

'Loading values to arrays

For i = 4 To X
     Prefix(i - 3) = .Cells(i, 1).Value
Next i

For i = 4 To Y
     Item(i - 3) = .Cells(i, 2).Value
Next i

For i = 4 To Z
     Postfix(i - 3) = .Cells(i, 3).Value
Next i

'Random item generated and ready for output transition
.Cells(1, 1).Value = Prefix(Int(Rnd() * (X - 3) + 1))
.Cells(1, 2).Value = Item(Int(Rnd() * (Y - 3) + 1))
.Cells(1, 3).Value = Postfix(Int(Rnd() * (Z - 3) + 1))

End With
Application.ScreenUpdating = True
End Sub
[/vba]
SkyPro, ikki, пока не знаю, зачем может понадобиться сортировка массива, но заметку делаю, что для профи сортировка важна. Мне больше нравится шейкерная пока.

vikttur, статью про нечитабельный код читал пару дней назад, понравилась =) С некоторыми формальными правилами знаком, постепенно внедряю. Но пока вроде не пишу ничего достаточно серьёзного, чтобы держаться полностью "официального" стиля.

Автор - Rioran
Дата добавления - 10.06.2014 в 15:42
ikki Дата: Вторник, 10.06.2014, 17:34 | Сообщение № 31
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
А вот разобрать код, не зная алгоритма, много сложнее.

кладём рядушком (алгоритм и код) и разбираем :)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
А вот разобрать код, не зная алгоритма, много сложнее.

кладём рядушком (алгоритм и код) и разбираем :)

Автор - ikki
Дата добавления - 10.06.2014 в 17:34
Hugo Дата: Вторник, 10.06.2014, 17:45 | Сообщение № 32
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Виктор, раз Dim написал - то переменная уже память отъела. Проверь пошагово.
Другое дело что так её можно элегантно обнулить, ну и удобнее если копипастишь блок кода - сразу всё что нужно выделил и закопипастил в другой макрос.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВиктор, раз Dim написал - то переменная уже память отъела. Проверь пошагово.
Другое дело что так её можно элегантно обнулить, ну и удобнее если копипастишь блок кода - сразу всё что нужно выделил и закопипастил в другой макрос.

Автор - Hugo
Дата добавления - 10.06.2014 в 17:45
Rioran Дата: Вторник, 10.06.2014, 18:07 | Сообщение № 33
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
можно элегантно обнулить

Hugo, обнулить? В смысле удалить из памяти? Есть какая-то команда, обратная Dim? AntiDim?


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение
можно элегантно обнулить

Hugo, обнулить? В смысле удалить из памяти? Есть какая-то команда, обратная Dim? AntiDim?

Автор - Rioran
Дата добавления - 10.06.2014 в 18:07
Hugo Дата: Вторник, 10.06.2014, 18:18 | Сообщение № 34
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Rioran, Сам так не делал, но в коде видел.
Вместо

[vba]
Код
sub x()
dim y
'...код
if true then
y=0
'...код
end if
end sub
[/vba]

было так:

[vba]
Код
sub x()
'...код
if true then
dim y
'...код
end if
end sub
[/vba]

Экономится целая строка! :)


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 10.06.2014, 18:19
 
Ответить
СообщениеRioran, Сам так не делал, но в коде видел.
Вместо

[vba]
Код
sub x()
dim y
'...код
if true then
y=0
'...код
end if
end sub
[/vba]

было так:

[vba]
Код
sub x()
'...код
if true then
dim y
'...код
end if
end sub
[/vba]

Экономится целая строка! :)

Автор - Hugo
Дата добавления - 10.06.2014 в 18:18
SkyPro Дата: Вторник, 10.06.2014, 18:39 | Сообщение № 35
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
А я не экономный. Обьявляю переменные сразу. Так (во всяком случае мне) понятнее.
Хотя на скорую руку могу и прям перед "заплаткой" обьявить.
А память.. памяти то уже гигабайты. Чего её экономить? )


skypro1111@gmail.com
 
Ответить
СообщениеА я не экономный. Обьявляю переменные сразу. Так (во всяком случае мне) понятнее.
Хотя на скорую руку могу и прям перед "заплаткой" обьявить.
А память.. памяти то уже гигабайты. Чего её экономить? )

Автор - SkyPro
Дата добавления - 10.06.2014 в 18:39
vikttur Дата: Вторник, 10.06.2014, 18:46 | Сообщение № 36
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

раз Dim написал - то переменная уже память отъела

Именно об этом и написал. Код сообщения №24 - нет никакого смысла сдвигать переменные вниз, здесь "димам" самое место сверху.
Но если переменная используется только в части кода:
От этого правила иногда отступаю (для экономии памяти)

памяти то уже гигабайты. Чего её экономить?

байт гигабайты бережет. Да и тяга к оптимизации... это же не к водке, чего ее стесняться :)


Сообщение отредактировал vikttur - Вторник, 10.06.2014, 18:52
 
Ответить
Сообщение
раз Dim написал - то переменная уже память отъела

Именно об этом и написал. Код сообщения №24 - нет никакого смысла сдвигать переменные вниз, здесь "димам" самое место сверху.
Но если переменная используется только в части кода:
От этого правила иногда отступаю (для экономии памяти)

памяти то уже гигабайты. Чего её экономить?

байт гигабайты бережет. Да и тяга к оптимизации... это же не к водке, чего ее стесняться :)

Автор - vikttur
Дата добавления - 10.06.2014 в 18:46
Hugo Дата: Вторник, 10.06.2014, 18:52 | Сообщение № 37
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну так проверил - когда код только начал работу, неужели переменной сразу нет в Locals?


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 10.06.2014, 20:24
 
Ответить
СообщениеНу так проверил - когда код только начал работу, неужели переменной сразу нет в Locals?

Автор - Hugo
Дата добавления - 10.06.2014 в 18:52
vikttur Дата: Вторник, 10.06.2014, 18:55 | Сообщение № 38
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Вот это новость для меня! Все переменные сразу отъедают положенный кусок!
Спасибо, буду знать.

Обнуление - оно ведь не вернет занятые переменой байты.


Сообщение отредактировал vikttur - Вторник, 10.06.2014, 19:01
 
Ответить
СообщениеВот это новость для меня! Все переменные сразу отъедают положенный кусок!
Спасибо, буду знать.

Обнуление - оно ведь не вернет занятые переменой байты.

Автор - vikttur
Дата добавления - 10.06.2014 в 18:55
anvg Дата: Вторник, 10.06.2014, 19:00 | Сообщение № 39
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
vikttur,
Цитата
здесь "димам" самое место сверху.
Наследие изучения Pascal?
 
Ответить
Сообщениеvikttur,
Цитата
здесь "димам" самое место сверху.
Наследие изучения Pascal?

Автор - anvg
Дата добавления - 10.06.2014 в 19:00
vikttur Дата: Вторник, 10.06.2014, 19:07 | Сообщение № 40
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата
Наследие изучения Pascal?

[offtop]Мой первый язык, который я пытался постичь - ассемблер, потом бейсик. Это когда собирали Радио-86РК и Синклеры.
Хотелось не только паяльником и цифровой логикой владеть. Но программирование тогда не смогло победить мою непонятливость.[/offtop]
 
Ответить
Сообщение
Цитата
Наследие изучения Pascal?

[offtop]Мой первый язык, который я пытался постичь - ассемблер, потом бейсик. Это когда собирали Радио-86РК и Синклеры.
Хотелось не только паяльником и цифровой логикой владеть. Но программирование тогда не смогло победить мою непонятливость.[/offtop]

Автор - vikttur
Дата добавления - 10.06.2014 в 19:07
Мир MS Excel » Работа и общение » Неформальное общение » Обмен знаниями: VBA-массивы на Tableau (Москва) (Предлагаю обменяться знаниями в формате личной встречи.)
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!