Fa1nt
Зарегистрирован: 25.12.2004 Сообщения: 18 Откуда: Ukrain
|
Добавлено: Вс Апр 02 2006 17:28 Заголовок сообщения: надо сделать аналог стандартной функции Excel ДВССЫЛ() |
|
|
Возвращает ссылку, заданную текстовой строкой. Ссылки немедленно вычисляются для вывода их содержимого. Функция ДВССЫЛ используется, если требуется изменить ссылку на ячейку в формуле, не изменяя саму формулу.
Синтаксис
ДВССЫЛ(ссылка_на_ячейку;a1)
Ссылка_на_ячейку — это ссылка на ячейку, которая содержит либо ссылку в стиле А1, либо ссылку в стиле R1C1, либо имя, определенное как ссылка, либо ссылку на ячейку в виде текстовой строки. Если ссылка_на_ячейку не является допустимой ссылкой, то функция ДВССЫЛ возвращает значение ошибки #ССЫЛ!.
Если ссылка_на_ячейку является ссылкой на другую рабочую книгу (внешней ссылкой), другая рабочая книга должна быть открытой. Если это не так, функция ДВССЫЛ возвратит значение ошибки #ССЫЛКА!.
A1 — это логическое значение, указывающее, какого типа ссылка содержится в ячейке ссылка_на_текст.
Если a1 имеет значение ИСТИНА или опущена, то ссылка_на_ячейку интерпретируется как ссылка в стиле A1.
Если a1 имеет значение ЛОЖЬ, то ссылка_на_ячейку интерпретируется как ссылка в стиле R1C1.
Я скелет наваял, но так как это первый мой опыт в программировании VBA, то все очень криво Хотелось бы услышать дельных советов.
Код: |
Public Function MyKR(addr As Variant, Optional fa As Variant) As String
Dim ssilka As String
'--------------------------------------------------
If (TypeName(addr) = "String") Then
ssilka = addr
Else
ssilka = CStr(addr)
End If
'--------------------------------------------------
Application.Caption = "Контрольная работа"
'--------------------------------------------------
If IsA1(ssilka) Then
If IsMissing(fa) Then
MyKR = CStr(Application.Range(ssilka).Value)
ElseIf (fa <> 0) Then
MyKR = CStr(Application.Range(ssilka).Value)
Else
MyKR = "#ССЫЛКА!"
End If
ElseIf IsR1C1(ssilka) Then
If Not (IsMissing(fa)) Then
If fa = 0 Then _
MyKR = CStr(Apllication.Range(sslika).Value)
End If
Else
MyKR = "#ССЫЛКА!"
End If
'--------------------------------------------------
End Function
|
_________________ глвное не нервничать |
|