Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: макрос в Excel 2003 Добавлено: 05.03.09 08:39  

Автор вопроса:  nwa
День бодрый.
Пишу небольшой макрос в Excel на vba и споткнулся на таком моменте — нужно заполнить 6 ячеек названиями улиц на листе excel, причем ячейка (2,2) должна быть всегда равна одному определённому названию улицы (для примера я взял Ордж,25) и последняя ячейка (3,4) должна быть равна первой (2,2), это реализуемо, для примера так:

pole1 = "Ордж,25"
Worksheets(list1).Cells(2, 2).Value = pole1
Worksheets(list1).Cells(3, 4).Value = pole1

Остальные 4 ячейки (2,3; 3,2; 3,3; 2;4) должны заполняться рандомно из заданного списка улиц (всего 9 улиц), причем как видно из скриншота ниже ячейка (2,3) должна быть равна ячейке (3,2) и также с ячейками (3,3) и (4,2) -вот на этом моменте я споткнулся, как реализовать рандомное заполнение ячеек? Пример заполнения ячеек на скриншоте ниже. Если можно,то приведите пример, заранее спасибо.
Скриншот выложен тут - http://img222.imageshack.us/img222/7696/screenm.jpg

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #1 Добавлено: 05.03.09 09:15
  1. Sub RandomStrit()
  2. Dim Addr
  3. Dim A1 As Long, A2 As Long
  4. Addr = Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9")
  5. Randomize
  6. A1 = Int(Rnd * 9)
  7. Do
  8.   A2 = Int(Rnd * 9)
  9. Loop While A1 = A2
  10. Cells(2, 3) = Addr(A1)
  11. Cells(3, 2) = Addr(A1)
  12. Cells(3, 3) = Addr(A2)
  13. Cells(4, 2) = Addr(A2)
  14. End Sub

Ответить

Номер ответа: 2
Автор ответа:
 nwa



Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 05.03.09 15:13
Спасибо за ответ!
Еще вопросик появился - есть формула = 9.30+(<Данные_из_ячейки_M5>/0.3)/60, как ее правильно записать? Записывал так


Range("A1";).Formula="=9.30+(M$5/0.3)/60"


Выдает в ячейке эту строку, но не вычисляет, также записывал без знака "$", тоже никак.

Ответить

Номер ответа: 3
Автор ответа:
 nwa



Вопросов: 1
Ответов: 4
 Профиль | | #3 Добавлено: 05.03.09 15:13
Вместо смайла - знак скобки..

Ответить

Номер ответа: 4
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #4 Добавлено: 06.03.09 09:49
Cells(1,1).FormulaR1C1="=9.30+(R5C[12]/0.3)/60"

Ответить

Номер ответа: 5
Автор ответа:
 nwa



Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 12.03.09 07:33
Спасибо большое за ответы. Появлися еще один вопросик - а есть в vba функция автоматического преобразования числа во время (вида час.мин), или готовый пример... те есть например число 587, если мы обычно поделим на 60 чтобы получить часы то получим ответ 9.87, надо чтобы получалось 10.27, те привести к часам.минутам?

Ответить

Номер ответа: 6
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #6 Добавлено: 12.03.09 08:30
  1. Format(TimeSerial(0,587,0),"h.mm"'="9.47"
Каким образом из 587 минут получить 9.87 (тем более 10.27) для меня осталось загадкой.

Ответить

Номер ответа: 7
Автор ответа:
 nwa



Вопросов: 1
Ответов: 4
 Профиль | | #7 Добавлено: 12.03.09 09:17
Вообщем я маленько не туда начал копать и, запутавшись, ошибся, так что на вопрос, заданный выше не обращаяйте внимания... задачка изменилась маленько, вообщем, есть некоторая формула, на выходе которой получаем дробное число, например 9.87, как мне отделить дробную часть числа от целой, для работы с дробной частью дальше?

Ответить

Номер ответа: 8
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #8 Добавлено: 12.03.09 10:09
  1. frac=round(9.87 - int(9.87),2)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам