VBA сталкивается с проблемой с функцией НАЙТИ с помощью Word

В настоящее время я борюсь с нижеследующими требованиями:

а. Прочтите файл Excel, размещенный на SharePoint, из Word с помощью VBA. б. Найдите значение в определенном столбце и определите эту строку в. На основе этой строки прочитайте значение из одной и той же строки из разных столбцов.

Код приведен ниже:

Sub Return_a_Value_from_Excel()
     Dim mySpreadsheet As Excel.workbook
     Dim strSalesTotal As String, i As Object
     
     Set mySpreadsheet = GetObject("Sharepoint/xlsx") ' Code breaks here
        
     Set i = mySpreadsheet.Worksheets("Sheet1").Range("AO:AO").Find(What:=2272, LookIn:=xlValues).Row
     
     'mySpreadsheet.Application.ActiveSheet.Range("A1:AO1000").Find(2272).Row ' Code breaks here
     
     strSalesTotal = mySpreadsheet.Cells(i, 42)
     Set mySpreadsheet = Nothing
     Selection.TypeText strSalesTotal
     
     Selection.TypeParagraph
     
End Sub

Хотя это, очевидно, не ваша непосредственная проблема, удалите .Row. Действительно ли у вас проблема с открытием файла Excel из Sharepoint?

BigBen 27.08.2024 20:19
i традиционно используется как итератор, поэтому i As Object выглядит немного странно. Я бы посоветовал rng As Excel.Range
BigBen 27.08.2024 20:25

Я получил ошибку времени выполнения «438». Объект не поддерживает это свойство или метод

gurtej 27.08.2024 20:32
Set mySpreadsheet = GetObject("Sharepoint/xlsx") Непонятно, чего вы от этого ждете? У вас есть полный путь к файлу Excel? Если да, вам нужно создать экземпляр Excel, а затем открыть файл в этом экземпляре, используя полный путь к файлу xlsx.
Tim Williams 27.08.2024 20:58

Например Dim xlApp as Excel.Application, wb As Excel.Workbook: Set xlApp = New Excel.Application: Set wb = xlApp.Workbooks.Open(pathToWbGoeshere)

Tim Williams 27.08.2024 21:01

@TimWilliams Спасибо, Тим, это работает, но как я могу использовать функцию поиска. Все еще застрял там

gurtej 27.08.2024 21:26

Проблема @BigBen, с которой я столкнулся с самого начала, заключается в том, что функция поиска постоянно выдает мне ошибку. Не уверен, что я делаю неправильно wks = wb.Application.Sheets("Sheet1").Range("AO:AO").Find("2272")

gurtej 27.08.2024 21:46
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
7
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что-то вроде этого должно работать:

Sub Return_a_Value_from_Excel()
     
    Dim xlApp As Excel.Application, xlWb As Excel.Workbook
    Dim res, srch
    
    Set xlApp = New Excel.Application
    xlApp.Visible = True 'for troubleshooting...
    Set xlWb = xlApp.Workbooks.Open("pathtosharepointfile.xlsx")
    
    srch = 2272 'value to be searched
    'assuming you want an exact match...
    res = xlApp.VLookup(srch, xlWb.Worksheets("Sheet1").Range("AO:AP"), 2, False)
    
    If Not IsError(res) Then 'got a match?
        Selection.TypeText res
        Selection.TypeParagraph
    Else
        MsgBox "No match found for value '" & srch & "'", vbExclamation
    End If
    
    xlWb.Close False
    xlApp.Quit
     
End Sub

Ошибка компиляции: метод или элемент данных не найден.

gurtej 27.08.2024 22:08

Опечатка - должно быть xlApp.VLookup. Если вы получаете другие ошибки, сообщите нам, какая строка, чтобы нам не нужно было гадать.

Tim Williams 27.08.2024 22:10

Кроме того, вы задали 11 вопросов , но ни разу не приняли ответ. Было бы полезно, если бы вы приняли полезные ответы.

BigBen 27.08.2024 22:13

Другие вопросы по теме