Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / вопросы новичка / 14 сообщений из 14, страница 1 из 1
28.11.2005, 17:31:25
    #33404176
Bodrov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Добрый день
1. как на vba будет ключевое слово которое на Си ++ произностится this ( сслыка на текущий объект внутри которого находишься)

2. как получить доступ к переменным определенным в книге
Insert->Name->Define (пункты меню)?

3. как сделать доступным макрос по hot-key во всех открытых книгах ?
(например макрос форматирования страницы)

Заранее спасибо
...
Рейтинг: 0 / 0
28.11.2005, 18:32:19
    #33404326
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
1)
Код: plaintext
ME
2) не знаю :-(
3) создать макрос в шаблоне
...
Рейтинг: 0 / 0
28.11.2005, 18:39:09
    #33404345
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
по 2
коллекция Names, но она может быть у application, thisworkbook и activesheet.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.11.2007, 17:07:26
    #34972638
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Есть рандж ($A$1:$J$2),
примерно такой
ABCDEFGHJ1Ширина4050607080901001102Цена3035404550556065
Как по нему пройтись, чтобы получить в рекордсет
ШиринаЦена40305035......11035

То есть пройтись хоцца по роу 2, пока не кончится рандже. Как?
...
Рейтинг: 0 / 0
28.11.2007, 17:19:58
    #34972685
sqrk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
big-dukeпо 2
коллекция Names, но она может быть у application, thisworkbook и activesheet.


у sheets тоже есть
...
Рейтинг: 0 / 0
28.11.2007, 17:34:45
    #34972752
sqrk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
бухой быкЕсть рандж ($A$1:$J$2),
примерно такой
ABCDEFGHJ1Ширина4050607080901001102Цена3035404550556065
Как по нему пройтись, чтобы получить в рекордсет
ШиринаЦена40305035......11035

То есть пройтись хоцца по роу 2, пока не кончится рандже. Как?

excel 2003
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim i As Integer, j As Integer
       
    For j =  1  To  2 
        For i =  1  To ActiveSheet.Range("A1").SpecialCells(xlLastCell).Column Step  1 
            Cells(i +  5 , j).Value = Cells(j, i).Value
        Next i
    Next j
...
Рейтинг: 0 / 0
28.11.2007, 17:42:10
    #34972782
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
А где тут ранджк?
...
Рейтинг: 0 / 0
29.11.2007, 00:48:13
    #34973468
LETME
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
...транспонировать сначала, а потом загнать в рекордсет.
Глупо, но правда.
А зем вопрос в этм топике было задавать?
...
Рейтинг: 0 / 0
29.11.2007, 10:32:47
    #34973962
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
LETMEА зем вопрос в этм топике было задавать?Шоб новых не плодить... А по поику на "имена" вылез среди всех этот с такой темой - очень подходит :)

LETME...транспонировать сначалаЭто поясните что такое и как делать. Более конкретно есть лист как на картинке (ценник) его надо перегнать на СКЛ и получить таблицу в виде:
ШринаВысотаЦена300300203503002140030022450300245003002555030026600300276503002870030029750300308003003185030032.........1000100052
Причём дименщины (300,350,400) могут в будущем быть блее точные и желательно было бы как-то опираться на рэндж "цена".
ну или вообще хоть как-то сделать, но чтобы ексель мог изменять пользователь, т.е. чтобы не было привязано к cells.
...
Рейтинг: 0 / 0
29.11.2007, 16:25:40
    #34975637
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Ничё не могу придумать, кроме как сделать ещё один шиит и в нём табличку с формулами (тогда инсертить можно сколько хочешь строк и столбцов, а формула будет указывать на то, на что и должна. Типа
StartEndCennyk Nr 1=Markizes!B4=Markizes!Q19
и потом (чтобы знать откуда брать) на неё (а не на имена) ссылаться
типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Type TableRange
    SheetName As String
    StartCell As String
    EndCell As String
End Type

Private Function ExtractTableRAngeInfo(sPriceListname As String) As TableRange

    Dim col As Long
    Dim row As Long
    Dim sRefText As String
    Dim sRefSheet As String
    Dim sFormula As String
    
    row = ActiveWorkbook.Names(sPriceListname).RefersToRange.row
    col = ActiveWorkbook.Names(sPriceListname).RefersToRange.Column
    sFormula = ActiveWorkbook.Sheets("SYS").Cells(row, col +  1 ).Formula
    ExtractTableRAngeInfo.SheetName = _
        Mid(Left(sFormula, InStr(sFormula, "!") -  1 ),  2 )
    ExtractTableRAngeInfo.StartCell = _
        Mid(sFormula, InStr(sFormula, "!") +  1 )
    sFormula = ActiveWorkbook.Sheets("SYS").Cells(row, col +  2 ).Formula
    ExtractTableRAngeInfo.EndCell = _
        Mid(sFormula, InStr(sFormula, "!") +  1 )

End Function

Только жутко не нравится это извращение... Может до завтра хоть ктонибудь подскажит новичку как нормально можно сделать?
...
Рейтинг: 0 / 0
29.11.2007, 17:31:24
    #34975926
sqrk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Посмотрите такой вариант.

Начальная матрица расположена на листе "Befor" в именованном диапозоне "ЦЕНЫ"
Значения для затяжки копируются на лист "After"
...
Рейтинг: 0 / 0
29.11.2007, 17:47:24
    #34976003
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Исесенно *.count-1 много разумнее чем моё творение ;). Как я сам не додумался, cпасибо!
А "значения для затяжки" копируются как пример, или перед тем как это всё толкать в рекордсет их действительно лучше подготовить на коком нибудь "тэмп" листе?
...
Рейтинг: 0 / 0
29.11.2007, 18:04:09
    #34976076
sqrk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
Я не поняла в каком смысле как пример? Вы заносите туда все необходимый данные (свою матрицу значений). Главное не зубудьте потом переопределить Range "ЦЕНЫ", если изениться количество столбцов и строк. Сама матрица может находиться в любом месте страницы.

В коде используется иимя листа и имя ренжа, при копировании кода себе, обратите на это внимание
...
Рейтинг: 0 / 0
30.11.2007, 00:48:39
    #34976729
LETME
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопросы новичка
LETME...транспонировать сначалаЭто поясните что такое и как делать. Более конкретно есть лист как на картинке (ценник) его надо перегнать на СКЛ и получить таблицу в виде:


1. выделить диапазон в исходной таблице
2. произвести "специальная вставка" - "транспонировать" => получаете желаемый результат в Excel
3. пишите rst.Open "SELECT F1, F2... FROM [какойтотамлист... диапазон...].... - в результате у Вас заполненный рекордсет.
4. А дальше с ним уж все что вздумается делайте.
5. только вот я по неопытности не знаю -можно ли его добавить одним действием в таблицу ... :/

PS: думаю... - это не прямой вопрос на ответ, но работающее... пусть и кривоватое решение.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / вопросы новичка / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]