powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как оформить ссылку?
7 сообщений из 7, страница 1 из 1
Как оформить ссылку?
    #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
Как оформить ссылку?
    #34607686
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что файл сначала нужно открыть - Workbooks.Open("C:\Таблица.xls").Worksheets("Лист1").Range("A1:B5")
...
Рейтинг: 0 / 0
Как оформить ссылку?
    #34607995
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как без открытия?
...
Рейтинг: 0 / 0
Как оформить ссылку?
    #34608066
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставить ссылку в какую-нибудь ячейку, а потом взять ее значение. Больше никак.
...
Рейтинг: 0 / 0
Как оформить ссылку?
    #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
Как оформить ссылку?
    #34608732
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в "D1":
Код: plaintext
='C:\[Таблица.xls]Лист1'!$A$ 1 :$B$ 5 
...
Рейтинг: 0 / 0
Как оформить ссылку?
    #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
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как оформить ссылку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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