Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Вопрос!!! Добавлено: 13.01.10 12:28  

Автор вопроса:  Iren | ICQ: 496876583 
Добрый день! В первом столбце у меня идут названия. Во втором столбце я выгружаю данные. С помощью InputBox я ввожу дату (это параметр). эта дата подставляется в запрос, и я вытаскиваю данные. Но при следующем запуске макроса, данные запишутся поверх существующих. мне бы хотелось сделать так, чтобы при каждом следующем запуске данные записывались с следующий столбец. помогите как это сделать?

Ответить

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

Номер ответа: 1
Автор ответа:
 Саня



ICQ: 553816426 

Вопросов: 10
Ответов: 99
 Профиль | | #1 Добавлено: 13.01.10 21:46
Очень плохо задан вопрос.

Ответить

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



Вопросов: 3
Ответов: 22
 Профиль | | #2 Добавлено: 13.01.10 23:08
Насколько я понимаю в первой строке таблицы у тебя заголовки (шапка), если нет то сделай её. При каждом запуске программы, прежде чем выводить данные, просматривай поочередно ячейки первой строки, слева направо, пока не найдешь первую пустую ячейку
  1.  
  2. Dim СтолбецВывода As Integer
  3. Dim i As Integer
  4.  
  5. For i = 1 To ActiveSheet.Columns.Count
  6.       If Cells(1, i).Value = "" Then
  7.             СтолбецВывода = i
  8.             Exit For
  9.       End If
  10. Next i
  11.  



После этого выводи данные в найденный столбец. Не забудь только заголовок вписать, а то в следующий раз макрос опять здесь же остановится.
И ещё такие соображения:
1. Вместо ActiveSheet.Columns.Count в идеале следует поставить экселевскую константу, содержащую количество столбцев на листе, поищи как там она называется, если хочешь. В любом случае просто число столбцев вместо этого выражения здесь не годится, потому что в разных версиях Excel количество доступных столбцев тоже разное.
2.Не забудь предусмотреть что-нибудь на случай, если свободных столбцев уже не осталось, а процедуру все-равно запустили.

Много времени этот перебор занять не должен, но если вдруг будет занимать, то тут могу посоветовать только сохранять текущий столбец вывода в свойствах книги (CustomDocumentProperties), или в реестр писать (SaveSetting/GetSetting).

Ответить

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



ICQ: 496876583 

Вопросов: 11
Ответов: 25
 Профиль | | #3 Добавлено: 14.01.10 13:40
Спасибо большое за помощь

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 15.01.10 19:39
  1. LastRow = Rows("1").Columns(ActiveSheet.Columns.Count).End(xlToLeft).Column

Ответить

Страница: 1 |

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



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