Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: VBA, Exel Добавлено: 11.04.03 14:17  

Автор вопроса:  wad
В Exel есть форма. 1-я строка(1) и столбец(А) с такими данными:  день.месяц.год  фамилия имя часы:минуты(это все в одной ячейке А1). Можно ли каким-то образом выделить только часы и минуты, скопировав часы в ячейку В1, минуты в С1? Данные каждый день вносятся в первый столбец до 200 строки(А200), накапливаются(1-й день в А1, 2-й в А2 и т.д). Можно решить этот вопрос средствами basic или макросами? Спасибо

Ответить

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

Номер ответа: 1
Автор ответа:
 Alex&r



Вопросов: 10
Ответов: 105
 Профиль | | #1 Добавлено: 11.04.03 17:16

Предположим в ячейке А1 имеется запись:

12.1.2003 Иванов Иван 17:30

 

Делаем: Сервис -> Макрос -> Редактор Visual Basic.

Пишем макрос.

Sub Probe()
Dim SStr As String, Pos As Integer
Dim StDate As String, StInitials As String, StTime As String
Dim Pos1 As Integer, Pos2 As Integer, Pos3 As Integer
SStr = Sheets(<лист>;).Cells(1, 1).Value    ' читаем из ячейки А1
Pos1 = InStr(1, SStr, " ")                                 'пробел между датой и фамилией
Pos2 = InStr(Pos1 + 1, SStr, " ")                    'пробел между фамилией и именем
Pos3 = InStr(Pos2 + 1, SStr, " ")                    'пробел между именем и временем
StDate = Mid(SStr, 1, Pos1 - 1)                                 ' выделяем дату
StInitials = Mid(SStr, Pos1 + 1, Pos3 - Pos1-1)       ' выделяем фамилию и имя
StTime = Mid(SStr, Pos3 + 1)                                    ' выделяем время
Sheets(<лист>;).Cells(1, 2).Value = Hour(StTime)             ' записываем часы в В1
Sheets(<лист>;).Cells(1, 3).Value = Minute(StTime)         ' записываем минуты в С1
End Sub

Соответственно для следующих строк - Cells(N,1)

<лист> - номер листа или его "имя".

Успехов!!

Ответить

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



Вопросов: 3
Ответов: 6
 Профиль | | #2 Добавлено: 11.04.03 19:42
Запивал в строкуЛист1-
Sub Probe()
Dim SStr As String, Pos As Integer
Dim StDate As String, StInitials As String, StTime As String
Dim Pos1 As Integer, Pos2 As Integer, Pos3 As Integer
SStr = Sheets(<Лист1>;).Cells(1, 1).Value    ' читаем из ячейки А1
Pos1 = InStr(1, SStr, " ")                                 'пробел между датой и фамилией
Pos2 = InStr(Pos1 + 1, SStr, " ")                    'пробел между фамилией и именем
Pos3 = InStr(Pos2 + 1, SStr, " ")                    'пробел между именем и временем
StDate = Mid(SStr, 1, Pos1 - 1)                                 ' выделяем дату
StInitials = Mid(SStr, Pos1 + 1, Pos3 - Pos1 - 1)     ' выделяем фамилию и имя
StTime = Mid(SStr, Pos3 + 1)                                    ' выделяем время
Sheets(<Лист1>;).Cells(1, 2).Value = Hour(StTime)             ' записываем часы в В1
Sheets(<Лист1>;).Cells(1, 3).Value = Minute(StTime)         ' записываем минуты в С1
End Sub
 
В строчках помеченых вопросом пишет-Compile error:Syntax error
 

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 12.04.03 01:32

WAD!!! Ну ты даешь!!! Тебе ВСЁ разжевали...И более того, полный пример с описанием не поленился паренек сделать...

А ты пишешь... (<Лист1>;).Ты хоть изредка книги почитывай,где про синтаксис команд пишется... Естесственно ошибка будет... НАДО ПИСАТЬ ("Лист1").Где Лист1 - название РЕАЛЬНОГО листа в твоей книге...

Ответить

Страница: 1 |

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



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