В настоящее время я борюсь с нижеследующими требованиями:
а. Прочтите файл 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
i
традиционно используется как итератор, поэтому i As Object
выглядит немного странно. Я бы посоветовал rng As Excel.Range
Я получил ошибку времени выполнения «438». Объект не поддерживает это свойство или метод
Set mySpreadsheet = GetObject("Sharepoint/xlsx")
Непонятно, чего вы от этого ждете? У вас есть полный путь к файлу Excel? Если да, вам нужно создать экземпляр Excel, а затем открыть файл в этом экземпляре, используя полный путь к файлу xlsx.
Например Dim xlApp as Excel.Application, wb As Excel.Workbook: Set xlApp = New Excel.Application: Set wb = xlApp.Workbooks.Open(pathToWbGoeshere)
@TimWilliams Спасибо, Тим, это работает, но как я могу использовать функцию поиска. Все еще застрял там
Проблема @BigBen, с которой я столкнулся с самого начала, заключается в том, что функция поиска постоянно выдает мне ошибку. Не уверен, что я делаю неправильно wks = wb.Application.Sheets("Sheet1").Range("AO:AO").Find("2272")
Что-то вроде этого должно работать:
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
Ошибка компиляции: метод или элемент данных не найден.
Опечатка - должно быть xlApp.VLookup
. Если вы получаете другие ошибки, сообщите нам, какая строка, чтобы нам не нужно было гадать.
Кроме того, вы задали 11 вопросов , но ни разу не приняли ответ. Было бы полезно, если бы вы приняли полезные ответы.
Хотя это, очевидно, не ваша непосредственная проблема, удалите
.Row
. Действительно ли у вас проблема с открытием файла Excel из Sharepoint?