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

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

ru
Offline Offline

« Ответ #60 : 19-09-2005 07:08 » 

Так что ли
Private Sub CommandButton3_Click()
i = 0
Holliday(i) = CInt(ComboBox1.Text)
i = i + 1
End Sub
Записан
Alf
Гость
« Ответ #61 : 19-09-2005 07:46 » 

Не так. Счетчик не должен быть локальным в обработчике нажатия кнопки. Сейчас при каждом нажатии i обнуляется, поэтому дальше единицы дело никогда не продвинется.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #62 : 19-09-2005 08:06 » 

Поняла, а вот вопросик
ThisDocument.TextBox1.Text=FirstOfNextMonth
т.е TextBox получает дату в виде 10.01.05, а мне надо чтобы месяц был написан, т.е не 01, а январь
Записан
Alf
Гость
« Ответ #63 : 19-09-2005 08:51 » 

Нужно привести дату к нужному представлению функцией Format.

Строка формата будет что-то вроде "dd mmmm yyyy"
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #64 : 19-09-2005 10:23 » 

Вопрос
Код:
For i = 70 To 92
    While (Weekday(FirstOfNextMonth) = 1) Or (Weekday(FirstOfNextMonth) = 7)
        For oa = 0 To p
            While (FirstOfNextMonth = WDay(oa))
                a(i) = FirstOfNextMonth
                Exit For
     
            Wend
        Next oa
       FirstOfNextMonth = FirstOfNextMonth + 1
    Wend
............
............
............

FirstOfNextMonth = FirstOfNextMonth + 1

Вопрос вот в чем, можно ли на VBA сделать чтобы в цикле While (FirstOfNextMonth = WDay(oa)) после  Exit For вставить какой-нибудь оператор(я не знаю существует он или нет), который позволял бы пройти мимо операции(они показаны точками) и сразу переходил на операцию FirstOfNextMonth = FirstOfNextMonth + 1
Записан
Alf
Гость
« Ответ #65 : 19-09-2005 10:35 » 

Такой оператор существует. Это столь нелюбимый программистами оператор перехода GOTO.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #66 : 22-09-2005 05:48 » 

Такой вопрсик, есть текстовый документ, у которого такое содержание
Код:
текст1
текст2

текст3
текст4
Между текст2 и текст3 две строки пусты, как сделать  цикл, чтобы текст1 и текст3 передавались в один массив, а текст2 и текст4 в другой, т.е когда доходит до двух пустых строк цикл начинался заново?
Записан
Alf
Гость
« Ответ #67 : 22-09-2005 06:14 » 

Именно так и сделать - подсчитывать число идущих подряд пустых строк и, когда их число достигнет двух, начать новый цикл.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #68 : 22-09-2005 06:23 » 

а если такой файл
Код:
текст1
текст2

текст3
........
тукст10


текст11
текст12

текст13
........
тукст20
Между строками текст2 текст3 и текст12 текст13 - одна пустая строка, а между текст10 и текст11 две строки.
Записан
Alf
Гость
« Ответ #69 : 22-09-2005 06:26 » 

В чем суть вопроса-то? Это утверждение, а не вопрос.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #70 : 22-09-2005 06:27 » 

а как посчитать пустые строки, что то я не пойму. Жаль
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #71 : 22-09-2005 06:29 » 

текст1 и текст11 заносятся в один массив, текст2 и текст12 заносятся в другой массив, текст3-10 и текст13-20 заносятся в ещё один  массив, как это сделать?
Записан
Alf
Гость
« Ответ #72 : 22-09-2005 06:56 » 

а как посчитать пустые строки, что то я не пойму. Жаль

Точно так же, как делала бы это сама, без компьютера:

Код:
...
EmptyStringCount = 0;
...
Str = InStream.ReadLine
if Len(Str) = 0 then
  EmptyStringCount = EmptyStringCount + 1
else
  EmptyStringCount = 0
end if
...
if (EmptyStringCount >= 2) then ...
Записан
Alf
Гость
« Ответ #73 : 22-09-2005 06:58 » 

текст1 и текст11 заносятся в один массив, текст2 и текст12 заносятся в другой массив, текст3-10 и текст13-20 заносятся в ещё один массив, как это сделать?

Не уловил закономерность. По какому принципу строки распределяются по массивам?
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #74 : 22-09-2005 08:24 » 

Код:
текст1
текст2

текст3
........
тукст10


текст11
текст12

текст13
........
тукст20


 с текст1 по текст10- это первый блок,  с текст11 по текст20 - это второй блок
первая строка каждого блока заноситься в один массив, вторая сторока - в другой массив, потом идет пустая строка, потом в каждом блоке идут несколько строк друг за другом их надо поместить в третий массив
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #75 : 22-09-2005 08:25 » 

между блоками идет две пустые строки
Записан
Alf
Гость
« Ответ #76 : 22-09-2005 08:33 » 

Так и сделать.

Первую строку - в первый массив, вторую - во второй, пропустить пустую, остальные заносить в третий, пока не попадется пустая. Если за ней идет еще одна пустая, закончить блок и начать заново.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #77 : 22-09-2005 09:15 » 

что означает эта строка?
EmptyStringCount = 0
Записан
Alf
Гость
« Ответ #78 : 22-09-2005 09:31 » 

Переменной по имени EmptyStringCount присвоить значение ноль.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #79 : 22-09-2005 11:03 » 

Вопросик, если у меня строка такая

Иванов Иван Иванович
Сидоров Сергей Сергеевич
в массив1 занести фамилии, в массив2 занести имена, а в массив3 занести отчества
как это сделать
Записан
Alf
Гость
« Ответ #80 : 22-09-2005 11:31 » 

Использовать функцию Split(str).

Эта функция вернет массив, заполненный отдельными словами из строки str. Дальше останется только раскидать элементы по нужным местам.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #81 : 23-09-2005 07:51 » 

У меня проблемы всё с этим текстовым файлом.
Код:
текст1
текст2

текст3
........
тукст10


текст11
текст12

текст13
........
тукст20
Можно ли посчитать количество строк в каждом блоке, я знаю как посчитать во всем файле, а как посчитать строки в блоке, т.к в разных блоках количество строк разное? помогите
Записан
Alf
Гость
« Ответ #82 : 23-09-2005 07:59 » 

Я не совсем понял насчет того, каким образом текст разбивается на блоки. Ранее говорилось, что между блоками по две пустые строки. А если одна пустая, то в этом случае блок продолжается дальше?
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #83 : 23-09-2005 08:12 » 

файл заполняется в ручную, а потм с помощью программы нформация будет перекида в базу данных, скидываю оригинальный файл
Код:
ЗАО «КорпусГрупп»
ОИТ
                                  'данную строку можно убрать
Зиновьев Иван Петрович
Чунцов Андрей Олегович

                                  'каждый отдел - это новый блок, между блоками две пустые строки, чтоб как-то отделить их друг от друга
ЗАО «КорпусГрупп»
АХО

Киркина Марина Викторовна
Комсова Ирина Валерьевна

                                      ' Количество Людей в каждом отделе разное
ООО "Сервис Клининг"
Отдел продаж

Гуров Владимир Иванович
Маков Дмитрий Владимирович
Сидоров Константин Пертович

Вот как  посчитать количество людей в каждом отделе?
« Последнее редактирование: 19-12-2007 21:30 от Алексей1153++ » Записан
Alf
Гость
« Ответ #84 : 23-09-2005 10:13 » 

Вот как посчитать количество людей в каждом отделе?

Код:
отдел = 0
счетчик_сотрудников = 0
счетчик_пустых_строк = 0
while not конец_входного файла
  отдел = отдел + 1
  счетчик_сотрудников = 0
  считать_строку(название_фирмы)
  считать_строку(название_отдела)
  do
    считать_строку(стр)
    if (пустая строка(стр)) then
      счетчик_пустых_строк = счетчик_пустых_строк + 1
    else
      счетчик_сотрудников = счетчик_сотрудников + 1
      счетчик_пустых_строк = 0
    end if
  loop until (счетчик_пустых_строк >= 2)
  вывести(название_фирмы, название_отдела, счетчик_сотрудников)
wend

Примерно так.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #85 : 23-09-2005 10:29 » 

спасибо, сейчас попробую
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #86 : 28-09-2005 06:32 » 

Спасибо, за советы они мне очень помогли, то теперь у меня вопросик как с помощью VBA  в  WORD'е можно очистить буфер обмена?
« Последнее редактирование: 19-12-2007 21:33 от Алексей1153++ » Записан
Alf
Гость
« Ответ #87 : 28-09-2005 06:52 » 

Напрямую - не знаю, но можно попробовать схитрить - выделить пустую область и сохранить ее в буфере, она должна затереть предыдущее содержание.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #88 : 28-09-2005 06:53 » 

у меня проблема именно в том, что переполняется буфер обмена и его надо очистить полностью.
Записан
baranich
Постоялец

ru
Offline Offline

« Ответ #89 : 28-09-2005 10:53 » 

Возможно этот вопрос не для программистов, но очень важный вопрос.
Возможно ли увеличить в Word'е буфера обмена(у меня он 24 копирования) и поэтому когда моя программа работает и достигнув 48-ого копирования он выдает ошибку. Можно ли увеличить буфера обмена?

« Последнее редактирование: 19-12-2007 21:37 от Алексей1153++ » Записан
Страниц: 1 2 [3] 4  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines