Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как оформить ссылку? / 7 сообщений из 7, страница 1 из 1
20.06.2007, 13:14
    #34607539
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function VLOOKUP3(SearchColumnNum As Integer, SearchValue As Variant, _
                                        N As Integer, ResultColumnNum As Integer)
    Dim i As Integer
    Dim iCount As Integer
    Dim Table As Range
    Set Table = Workbooks("Таблица.xls").Worksheets("Лист1").Range("A1:B5")
    For i =  1  To Table.Rows.Count
            If Table.Cells(i, SearchColumnNum) = SearchValue Then
                iCount = iCount +  1 
            End If
            If iCount = N Then
                VLOOKUP3 = Table.Cells(i, ResultColumnNum)
                Exit For
            End If
        Next i
End Function
Работает, если паралельно открыт док. Таблица.xls. А если надо обратиться к конкретному документу по адрессу, например:
Код: plaintext
Workbooks("C:\Таблица.xls").Worksheets("Лист1").Range("A1:B5")
то почему не работает?
...
Рейтинг: 0 / 0
20.06.2007, 13:48
    #34607686
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
Потому что файл сначала нужно открыть - Workbooks.Open("C:\Таблица.xls").Worksheets("Лист1").Range("A1:B5")
...
Рейтинг: 0 / 0
20.06.2007, 15:01
    #34607995
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
А как без открытия?
...
Рейтинг: 0 / 0
20.06.2007, 15:17
    #34608066
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
Поставить ссылку в какую-нибудь ячейку, а потом взять ее значение. Больше никак.
...
Рейтинг: 0 / 0
20.06.2007, 17:55
    #34608723
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
AntonariyПоставить ссылку в какую-нибудь ячейку, а потом взять ее значение. Больше никак.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function VLOOKUP3(SearchColumnNum As Integer, SearchValue As Variant, _
                                        N As Integer, ResultColumnNum As Integer)
    Dim i As Integer
    Dim iCount As Integer
    Dim table As Range
    table = Range("D1")
    For i =  1  To table.Rows.Count
            If table.Cells(i, SearchColumnNum) = SearchValue Then
                iCount = iCount +  1 
            End If
            If iCount = N Then
                VLOOKUP3 = table.Cells(i, ResultColumnNum)
                Exit For
            End If
        Next i
End Function
Так что-ли?
...
Рейтинг: 0 / 0
20.06.2007, 17:58
    #34608732
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
А в "D1":
Код: plaintext
='C:\[Таблица.xls]Лист1'!$A$ 1 :$B$ 5 
...
Рейтинг: 0 / 0
20.06.2007, 19:08
    #34608914
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оформить ссылку?
Поставлю вопрос по другому:
Есть папка: C:\Таблицы\
В ней очень много документов вида:
C 01.01.2007 по 18.01.2007
C 01.01.2007 по 21.03.2007
C 01.01.2007 по 03.03.2007
C 01.01.2007 по 15.05.2007
C 01.04.2007 по 08.06.2007
C 01.04.2007 по 21.04.2007
C 01.05.2007 по 29.05.2007
C 01.05.2007 по 01.06.2007
C 01.03.2007 по 13.06.2007
C 01.03.2007 по 18.06.2007
................
В каждом из этих документов меня интересует массив "C4:X450"
Искомое значение находится в первом столбце массива.
Надо:
написать функцию типа VBLOOKUP с тремя переменными:
1. искомое значение (должно совпадать со значением в первом столбце массива)
2. дата1 (первая дата в названии документа)
3. дата2 (вторая дата в названии тогоже документа)
Код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function func(ByVal значение As String, ByVal дата1 As String, ByVal дата2 As String)
   Dim sdf As Range
   Dim sdf1 As String
   Dim sdf2 As String
   Dim sdf3 As String
   Dim sdf4 As String
   sdf1 = "'C:\Таблицы\["
   sdf2 = "C "
   sdf3 = " по "
   sdf4 = ".xls]Лист1'!C4:X450"
   sdf = sdf1 + sdf2 + дата1 + sdf3 + дата2 + sdf4
   func = WorksheetFunction.VLookup(значение, sdf,  2 , False)
End Function

Выдаёт, что ошибка в значении! Что не так???
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как оформить ссылку? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]