Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод переменных в ячейки Excel, Ввести из textbox в несколько ячеек 
:(
    Опции темы
kminas
Дата 21.4.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Можно ли и как в textbox VB ввести текст и считать его в несколько последовательно расположенных ячеек Excel. Уточняю.    
Есть почти готовая программка с макросами (текстом с переменными) для заполнения таблиц в Excel-е, но возможен вариант, когда этот текст потребуется заменить другим, заранее неизвестным, который может занять несколько ячеек в одном столбце. Можно ли считать этот текст и разделить его по ячейкам или может быть это можно сделать  каким-то другим способом? 
PM MAIL   Вверх
cardinal
Дата 21.4.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Модератор: Перенесено из VB6. 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 21.4.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Cardinal  зря переместил тему. Человек хочет из VB скинуть текст в xl. А раскидать можно,если текст принять за массив.Один элемент массива равен одной ячейке 


--------------------
Возмездие настигнет
PM MAIL   Вверх
kminas
Дата 21.4.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



А как найти начало и конец элемента массива? По количеству знаков?  

Это сообщение отредактировал(а) kminas - 21.4.2006, 21:32
PM MAIL   Вверх
cardinal
Дата 22.4.2006, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(Staruha @  21.4.2006,  18:31 Найти цитируемый пост)
Cardinal  зря переместил тему. 

Возможно в этот раз поторопился, если что давай тему назад. smile  


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 22.4.2006, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



cardinal, а как отыграть назад? Чувствую, что нет, наверно, простого решения. Еще на 3-х форумах тема зависла... 
PM MAIL   Вверх
cardinal
Дата 22.4.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Ты работашь во встроенном редакторе VB в Excel или ты хочешь незавимую от Excel программку на VB, которая открывает твой .xls документ и делает нужные поправки?
Цитата(kminas @  22.4.2006,  06:30 Найти цитируемый пост)
cardinal, а как отыграть назад? 

Местного модератора попросить, но я еще точно не уверен, что это надо делать. 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 22.4.2006, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата

Чувствую, что нет, наверно, простого решения.

  smile С xl работают многие программы, VB подавно.Пошарь на форуме именно на VB через поиск. Введи xl или Aplication. 


--------------------
Возмездие настигнет
PM MAIL   Вверх
kminas
Дата 22.4.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(cardinal @ 22.4.2006,  14:05)
Ты работашь во встроенном редакторе VB в Excel или ты хочешь незавимую от Excel программку на VB, которая открывает твой .xls документ и делает нужные поправки?

Я написал (хочу дописать) независимую от Excel программку на VB, которая открывает .xls документ (таблицу) в которую надо поместить заранее подготовленный текст. Но бывают случаи, что текст заранее неизвестен и я хочу, чтобы пользователь, не переключаясь в Excel, вводил информацию в форме VB (если с этим не будет большой мороки). Но, если это сложно, то пусть набирает в Excel-е.  

Это сообщение отредактировал(а) kminas - 22.4.2006, 21:13
PM MAIL   Вверх
cardinal
Дата 23.4.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Попробуй так
Код

Private Sub Command1_Click()
Dim Excel As Object
On Error GoTo 100
Set Excel = CreateObject("Excel.application")
With Excel
    .Workbooks.Add
    .Visible = True
    .Range("A1").Select
    .Selection.Merge
    .ActiveCell.FormulaR1C1 = Text1.Text
100 .ActiveWindow.SelectedSheets.PrintPreview
End With
Excel.Quit
Set Excel = Nothing
End Sub
 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 23.4.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Спасибо, попробую привязать к своей проге. 
PM MAIL   Вверх
kminas
Дата 25.4.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



К сожалению, не получилось. Пишет все в одной ячейке. Пробовал я вставить
Код
.Columns.ColumnWidth = 12
 текст переносится, но просто расширяет ячейку вниз. Буду пробовать дальше.
 
PM MAIL   Вверх
Staruha
Дата 25.4.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Вместо Range(A1) цикл надо запустить. 


--------------------
Возмездие настигнет
PM MAIL   Вверх
kminas
Дата 25.4.2006, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Я, в общем это тоже предолагал, но еще слаб в массивах. Спасибо, буду изучать. 
PM MAIL   Вверх
cardinal
Дата 25.4.2006, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Я пока не понял причем здесь массивы. Изучать тут особо нечего. Если сделать совсем по простому, то можно так
Код

Option Explicit

Private Sub Command1_Click()
Dim Excel As Object
Dim i As Integer
On Error GoTo 100
Set Excel = CreateObject("Excel.application")
With Excel
    .Workbooks.Add
    .Visible = True
    For i = 1 To 5
        .Range("A" & i).Select
        .Selection.Merge
        .ActiveCell.FormulaR1C1 = Text1.Text
    Next
100 .ActiveWindow.SelectedSheets.PrintPreview
End With
Excel.Quit
Set Excel = Nothing
End Sub
 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 25.4.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Опять немного не то. Просто копируется один и тот же текст 5 раз. 
Здесь, по-моему, должны быть как-то задействованы функции Left или Mid. А, строки 7,17 и 19, по-моему, лишние.   
И еще хорошая функция Split, но не знаю куда ее всунуть?! Мало практических знаний. 

Это сообщение отредактировал(а) kminas - 25.4.2006, 22:05
PM MAIL   Вверх
cardinal
Дата 25.4.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Ну держи пример с функцией Split
Код

Option Explicit

Private Sub Command1_Click()
Dim Excel As Object
Dim i As Integer
On Error GoTo 100
Set Excel = CreateObject("Excel.application")
With Excel
    .Workbooks.Add
    .Visible = True
    For i = 1 To 3
        .Range("A" & i).Select
        .Selection.Merge
        .ActiveCell.FormulaR1C1 = Split(Text1.Text)(i - 1)
    Next
100 .ActiveWindow.SelectedSheets.PrintPreview
End With
Excel.Quit
Set Excel = Nothing
End Sub

Строки 7 и 17 возможно и лишние, а вот насчет 19 не уверен... 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 25.4.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Мне выходить из Excel не надо после этой процедуры... 
PM MAIL   Вверх
kminas
Дата 25.4.2006, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Сдвинулось. А как эта функция работает? Она переносит по пробелу. А есть ли в Excel'e такая функция, которая считает количество знаков, скажем, например, переносить после 30-го знака. 
PM MAIL   Вверх
cardinal
Дата 26.4.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(kminas @  25.4.2006,  22:50 Найти цитируемый пост)
Она переносит по пробелу.

Не совсем. MSDN читай!
Цитата(MSDN)

Split Function
      

Description

Returns a zero-based, one-dimensionalarray containing a specified number of substrings.

Syntax

Split(expression[, delimiter[, count[, compare]]])

The Split function syntax has these parts:

Part Description 
expression Required.String expression containing substrings and delimiters. If expression is a zero-length string(""), Split returns an empty array, that is, an array with no elements and no data. 
delimiter Optional. String character used to identify substring limits. If omitted, the space character (" ") is assumed to be the delimiter. If delimiter is a zero-length string, a single-element array containing the entire expression string is returned. 
count Optional. Number of substrings to be returned; –1 indicates that all substrings are returned. 
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values. 


Settings

The compare argument can have the following values:

Constant Value Description 
vbUseCompareOption –1 Performs a comparison using the setting of the Option Compare statement. 
vbBinaryCompare 0 Performs a binary comparison. 
vbTextCompare 1 Performs a textual comparison. 
vbDatabaseCompare 2 Microsoft Access only. Performs a comparison based on information in your database. 
 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 26.4.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Спасибо большое, но у меня, практически (если не дословно-не сличал), весь перевод этого help'а В.Г.Кузьменко Visual Basic 6. Но, к сожалению, как и говорил, я еще плохо соображаю в массивах, а поучить лично - некому. Массивы же, по-моему, это очень объемный и многоуровневый объект VB. Я трудно обучаем по книгам. Или личное общение или метод тыка. Книги только для разъяснения и углубления уже нащупанного. Так что буду искать и изучать массивы. Спасибо.  
PM MAIL   Вверх
Staruha
Дата 26.4.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Cardinal наверно хотел сказать.
 Split(массив,разделитель)
 Так что если хочешь что бы после 30 знака разделялся, значит после 30 знака нужно ставить какой то уникальный знак. Так что получается ,что с обрезкой метод больше подходит  

Это сообщение отредактировал(а) Staruha - 26.4.2006, 20:33


--------------------
Возмездие настигнет
PM MAIL   Вверх
kminas
Дата 26.4.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Я не пойму как эта функция определяет конец одного элемента массива? 
PM MAIL   Вверх
cardinal
Дата 26.4.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Split(строка,разделитель) 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 26.4.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



А где можно прочитать, что может быть разделителем? 
PM MAIL   Вверх
cardinal
Дата 26.4.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kminas
Дата 26.4.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Спасибо! 
PM MAIL   Вверх
sadero
Дата 1.2.2007, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Разрешите попутный вопрос.
Как выйти мз режима PrintPreview программным способом?
PM MAIL   Вверх
mihanik
Дата 1.2.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Модератор: Пожалуйста, один топик - один вопрос.

Добавлено @ 09:21 
sadero, 
Цитата(sadero @  1.2.2007,  08:05 Найти цитируемый пост)
Как выйти мз режима PrintPreview программным способом? 


А зачем заходить? Чтобы потом искать способ выйти?  smile 

Маленько переделал код, который предложил cardinal...

Код

Private Sub Command1_Click()
Dim Excel As Object
Dim i As Integer
On Error GoTo MyError
Set Excel = CreateObject("Excel.application")
With Excel
    .Workbooks.Add
    .Visible = True
    For i = 1 To 3
        .Range("A" & i).Select
        .Selection.Merge
        .ActiveCell.FormulaR1C1 = Split(Text1.Text)(i - 1)
    Next
MyError:
End With
' Excel.Quit - закоментировал  строку, заставляющую xl завершать работу...
Set Excel = Nothing
End Sub




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.6008 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.