Вернуть строку Excel в макросе Word

У меня есть раскрывающийся список ContentControl в Word. Как только я выбираю элемент из раскрывающегося списка, я хочу найти его в документе Excel и установить номер строки, равный переменной. Приведенный ниже код - это то, что я пробовал, но часть Columns ("G: G"). Find говорит, что она не определена.

Sub findsomething(curRow) 
    Dim rng As Range
    Dim rownumber As Long

    curPath = ActiveDocument.path & "\" 
    Call Set_Variable(curPath) 
    StrWkShtNm = "Chapters"

    If Dir(StrWkBkNm) = "" Then   
        MsgBox "Cannot find the designated workbook: " & StrWkBkNm, vbExclamation
        Exit Sub 
    End If

    Set rng = Columns("G:G").Find(what:=curRow)
    rownumber = rng.Row
    MsgBox rownumber
    ' Release Excel object memory 
    Set xlWkBk = Nothing
    Set xlApp = Nothing 
    Application.ScreenUpdating = True
End Sub

person folds    schedule 20.06.2018    source источник
comment
Вместо этого используйте Range("G:G"). Или придерживаться Columns, Columns(7)   -  person BruceWayne    schedule 20.06.2018


Ответы (2)


При использовании нескольких приложений MS Office рекомендуется указать, на какое приложение вы ориентируетесь:

 Excel.Application.ThisWorkbook.Sheets(1).Range("A1").Select
person Pawel Czyz    schedule 20.06.2018

это то, что в итоге сработало. вы поставили меня на правильный путь со ссылкой на Excel.

Sub findsomething(curRow)
Dim rng As Long
Dim rownumber As Long

curPath = ActiveDocument.path & "\"
Call Set_Variable(curPath)
StrWkShtNm = "Chapters"
MsgBox "curRow = " & curRow

If Dir(StrWkBkNm) = "" Then
  MsgBox "Cannot find the designated workbook: " & StrWkBkNm, vbExclamation
  Exit Sub
End If

With xlApp
  .Visible = False
  Set xlWkBk = .Workbooks.Open(FileName:=StrWkBkNm, ReadOnly:=True, AddToMRU:=False)
  With xlWkBk
    With .Worksheets(StrWkShtNm)
        rng = .Range("G:G").Find(what:=curRow)
        MsgBox rng
    End With
    .Close False
  End With
  .Quit
End With


' Release Excel object memory
Set xlWkBk = Nothing: Set xlApp = Nothing
Application.ScreenUpdating = True

End Sub
person folds    schedule 21.06.2018