Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: ексель  (Прочитано 46514 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andi_ua
Участник

ua
Offline Offline

« : 24-04-2008 11:44 » 

здраствуйте, вопрос такой нажымаем на ячейку, нужно что б ее координаты сохранялися в другую ячейку с пожальшей ее обробкой.

как такое сделать?
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #1 : 24-04-2008 12:09 » 

наша пестня хороша начинай сначала
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

ActiveCell.Cells.Address
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #2 : 24-04-2008 12:21 » 

ну обясни, не доходит.
кнопок на каждого лепить не серйозно. ячеек около 4000 а переключателей не поставиш ексель умерает.

думал так
нажал на етот пример его координаты записало в какуюту ячейку а с той ячейки уже строить график
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #3 : 24-04-2008 12:40 » 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

при кликаньи на ячейку запустится этот обработчик
он и вернет тебе  тебе адрес ячейки

зы мне в лом писать тестовую прграммку

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #4 : 24-04-2008 12:56 » 

выдает Invalid use of property
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #5 : 24-04-2008 14:14 » 

все таки заставил Жаль
в модуль ЭтаКнига, в редакторе VB щелкаешь дважды и откроется окошечко

Код:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
    iAddress$ = Target.Address
    If MsgBox("Почему народ не читает HELP : " & iAddress$, vbYesNo, "") = vbYes Then
       Cancel = True
End Sub

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #6 : 24-04-2008 14:41 » 

спасибо большое
Записан
andi_ua
Участник

ua
Offline Offline

« Ответ #7 : 25-04-2008 08:39 » 

извени что достаю, а что б выдавало тока одну цифру. ты написал так выдает "A5" а что б тока 5 было? не трудно помочь?
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #8 : 25-04-2008 09:17 » 

Не извиняю Улыбаюсь, но если нажать две волшебных кнопочки стоя на слове address
можно получить следующее
Цитата
Address Property
               

Hyperlink object (Syntax 1): Returns or sets the address of the target document. Read/write String.

Range object (Syntax 2): Returns the range reference in the language of the macro. Read-only String.

Syntax 1

expression.Address

Syntax 2

expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

expression   Required. An expression that returns a Hyperlink object (Syntax 1) or a Range object (Syntax 2).

RowAbsolute   Optional Variant. True to return the row part of the reference as an absolute reference. The default value is True.

ColumnAbsolute   Optional Variant. True to return the column part of the reference as an absolute reference. The default value is True.

ReferenceStyle   Optional Variant. Can be one of the following XlReferenceStyle constants: xlA1 or xlR1C1. Use xlA1 to return an A1-style reference. Use xlR1C1 to return an R1C1-style reference. The default value is xlA1

External   Optional Variant. True to return an external reference. False to return a local reference. The default value is False.

RelativeTo   Optional Variant. If RowAbsolute and ColumnAbsolute are False, and ReferenceStyle is xlR1C1, you must include a starting point for the relative reference. This argument is a Range object that defines the starting point.

Remarks

If the reference contains more than one cell, RowAbsolute and ColumnAbsolute apply to all rows and columns.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #9 : 25-04-2008 09:44 » 

ну спасибо я уже help читал)) я понял что Address возвращает  в виде A5. а как можно оставить тока одну эту 5? так можно?

Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #10 : 25-04-2008 09:48 » 

конечно можно
F1

Цитата
Mid Function
     

Returns a Variant (String) containing a specified number of characters from a string.

Syntax

Mid(string, start[, length])

The Mid function syntax has these named arguments:

Part Description
string Required. String expression from which characters are returned. If string contains Null, Null is returned.
start Required; Long. Character position in string at which the part to be taken begins. If start is greater than the number of characters in string, Mid returns a zero-length string ("").
length Optional; Variant (Long). Number of characters to return. If omitted or if there are fewer than length characters in the text (including the character at start), all characters from the start position to the end of the string are returned.



Remarks

To determine the number of characters in string, use the Len function.

Note   Use the MidB function with byte data contained in a string, as in double-byte character set languages. Instead of specifying the number of characters, the arguments specify numbers of bytes. For sample code that uses MidB, see the second example in the example topic.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #11 : 25-04-2008 11:06 » 

розабрался))
 
как ето можно заминить? ато выдает что силишком длинная формула
Range("C5,D5,F5,H5,J5,L5,N5,P5,R5,T5,V5,X5,Z5,AB5,AD5,AF5,AH5,AJ5,AL5").Select
    Range("AL5").Activate
Записан
andi_ua
Участник

ua
Offline Offline

« Ответ #12 : 25-04-2008 12:11 » 

и еще как можно сделать А5 что б "5" задавалась в програме
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #13 : 25-04-2008 13:12 » 

сформулируй свои вопросы, ничего не понял
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #14 : 25-04-2008 13:15 » 

как можно сделать так что б ячейка А5 а сама цыфра  "5"  задавалась в макросе
Записан
andi_ua
Участник

ua
Offline Offline

« Ответ #15 : 25-04-2008 13:18 » 

сделал запись макроса, когда повторяю то выдает ошыбку "слишком большая формула" на скока понимаю сдесь выдиляет рядок Charts.Add

Range("C5,D5,F5,H5,J5,L5,N5,P5,R5,T5,V5,X5,Z5,AB5,AD5,AF5,AH5,AJ5,AL5").Select
    Range("AL5").Activate
Charts.Add
   
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #16 : 25-04-2008 13:18 » 

О себе : если туп как дерево - родишься баобабом (с)

еще раз, подробно, ЧТО ТЫ ХОЧЕШЬ получить. Опиши действия.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #17 : 25-04-2008 13:26 » 

вопшем то что ты помог до етого. нажымеш на ячейку она сохраняет например А5 удаляетца буква отаетца тока одна цыфра. и ету цыфру чтоб подставляло для других букв(B,C,D) и т д.  чтоб по етим рисовало график код для 6 значений такой

Sub kil()
'
' kil Макрос
' Макрос записан 24.04.2008 (Zver)
'


    Range("A2,B2,D2,F2,H2,J2").Select
    Range("J2").Activate
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A2,B2,D2,F2,H2,J2")
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2"
End Sub

а для 30 выдает ошыбку что слишком большая формула
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 25-04-2008 13:29 » 

А если формулу делать в духе A2:J2? Улыбаюсь Или у тебя данные в ячейках "через одну"?
Записан
andi_ua
Участник

ua
Offline Offline

« Ответ #19 : 25-04-2008 13:30 » 

они идут не по порядку а через одну
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #20 : 25-04-2008 13:41 » 

Цитата
а для 30 выдает ошыбку что слишком большая формула
Ключевая фраза. Есть ограничение на количество диапазонов

Как выйти из этой ситуации?
Создать "временный лист", в него записать в непрерывном диапазоне данные для графика, построить график
или
Выделить на этом листе место, благо, его еще много, и туда скопировать данные в непрерывный диапазон  для графика, построить график
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #21 : 25-04-2008 13:56 » 

спасибо и к "баобабом (с)" доходит

а на щет того что б вставлять
    Range("A3,B3,D3,F3,H3,J3,L3,N3,P3,R3,T3,V3,X3,Z3,AB3,AD3").Select
    Range("AD3").Activate
  нужную цыфру? она уже есть просто как ее поставить вместо "3" или не понятно обяснил?
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #22 : 25-04-2008 14:01 » 

    Range("A"+"5"+","+.....).Select
    Range("AD"+"5").Activate


ps баобабы - это ко мне,а не к тебе.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #23 : 25-04-2008 14:20 » 

 Улыбаюсь

ну например вот так можно как-то сделать?
 I = 2
    Range("A" + "I", "B" + "I").Select
    Range("B" + "I").Activate
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #24 : 25-04-2008 14:37 » 

andi_ua, давай шевелить мозгами
"I" это I
а если попробывать
r = "A" + I + "B"
print r
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #25 : 25-04-2008 19:22 » 

 Улыбаюсь, выдает ошибку Wrong namber of argument  or invalid property assigment

вот код может че не правильно?

 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
    iAddress$ = Target.Address
    Mid(iAddress$, 2) = "  "
    iAddress$ = I
   

    Range("A" + I, "B" + I, "D" + I).Select
    Range("D" + I).Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A" + I, "B" + I, "D" + I)
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
End Sub
End Sub
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #26 : 26-04-2008 09:36 » 

Aaaa, убейте миня ап стену   Сколько об стенку не бейся...

я привел условный код
тебе интерпретатор ВСЁ сказал,

Wrong namber of argument  or invalid property assigment


а это!!!!?Не понялНе понялНе понял

iAddress$ = Target.Address
Mid(iAddress$, 2) = "  "
iAddress$ = I

ну рааскажи что ты написал
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #27 : 26-04-2008 16:22 » 

 А черт его знает... оставляет тока цифру я смотрел через msgbox вроде то,  а как надо было? еще что то напутал? Скромно так... Скромно так... Скромно так...
Записан
Sla
Модератор

ua
Online Online
Пол: Мужской

WWW
« Ответ #28 : 26-04-2008 16:53 » 

andi_ua, сделай так

Address$ = Target.Address
Расскажи что делается в этой строке

Mid(iAddress$, 2) = "  "

Расскажи что делается в этой строке

iAddress$ = I
Расскажи что делается в этой строке

Потом продолжим...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andi_ua
Участник

ua
Offline Offline

« Ответ #29 : 29-04-2008 07:31 » 

Address$ = Target.Address
записываете адрес ячейки в  Address$

Mid(iAddress$, 2) = "  "
убирает букву из адреса

iAddress$ = I

сохраняет строковую переменную в цифровую

 
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines