Помогите плииззз, работа со строками

Программирование на Visual Basic for Applications
Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Помогите плииззз, работа со строками

Сообщение Павел_В » 19.01.2006 (Чт) 7:57

Вот такая проблема

Dim Str As String
Str = (Worksheets(1).Range("C1").Value
ActiveSheet.Range(Str ).Locked = False

В C1 на 1-ом листе такие данные ($A$1, $A$2, и т.д.)
вот когда там значение меньше 255 символов, то работает все, а когда больше к примеру 1000 то выдает ошибку и в дебагере при просмотре значения Str выдает тольео 255 символов
Плииз, помогите !!!!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.01.2006 (Чт) 8:10

Помочь в чём?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 8:19

как сделать чтобы в переменную Str передать строку любой длины и чтобы свойство Locked заработало .....

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.01.2006 (Чт) 8:23

Не знаю, всё присваивается.

activecell.Value = string(1000,"a")
msgbox activecell.Value
msgbox len(activecell.Value)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 8:23

Попробуй набор Cells(номер строки, номер столбца), в твоем варианте Cells(k, 1) 1 -для "А", по моему так проще чем в С1 все забивать

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 8:58

Выводить та в MsgBox-е выводит, а вот в Range похоже больше 255 символов обработать не может ..... таков вывод ...

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 9:01

все работает

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 9:32

ты что конкретно делал, и что у тебя работает ???

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 9:34

activecell.Value = string(1000,"a")

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 9:36

возможно раз у тебя адреса ячеек лежат, в exel 256 столбцов, может ты это ограничение хочешь исправить

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 10:11

Да ты наверное не понял, я имел ввиду совсем другое
попробуй сделать следующее

ActiveSheet.Range(Str).Locked = false
а перед эти Str задать значения в таком духе
Str = "$A$1, $A$2, $A$3" и т.д., вот если у тебя Str будет содержать больше 255 символов то не будет это работать, а вот если меньше то все работает .....
Я думал проблема именно в переменной, а оказалось в Range(str)

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 10:17

Это ограничение на имя, оно не может быть больше 255 символов (если не ошибаюсь)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.01.2006 (Чт) 10:29

А ты вообще понимаешь, что в принципе нельзя задавать адрес так, как это делаешь ты?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 10:39

видимо он уже понял

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 10:44

почему нельзя, это же диапазон, в чем проблема, объясни почему нельзя так задавать ???

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 10:51

если тебе говорит GSerg "нельзя задавать адрес так" значит нельзя, меняй код так чтобы обойти этот момент

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 19.01.2006 (Чт) 10:56

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

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 11:16

перечислением всех адресов каждой ячейки
набор Cells(i,j)
считывай i,j запоминая и потом вытаскивай

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.01.2006 (Чт) 11:18

Кто-то из нас тупит...
Да, правильно, я. Запятая - оператор объединения диапазонов.

при вводе определенного слова у меня на другой лист записываются адреса ячеек

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

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 19.01.2006 (Чт) 12:54

:oops:


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 96

    TopList