Передать строку nmbr из адреса, записанного в InputBox, в переменную lngRow для дальнейшего использования в коде? - PullRequest
0 голосов
/ 27 мая 2020

Привет, друзья StacOverflow.

Не могли бы вы помочь мне извлечь строку nmbr из адреса, записанного в поле ввода в моем коде. Из этой строки здесь: sCell = Application.InputBox(Prompt:="Pick the Cell", Type:=8).Value.

Мне понадобится эта строка nmbr позже, чтобы записать данные, которые я собираюсь извлечь из файла docx, в ту же строку на том же листе , что ячейка, указанная через InputBox, находится.

Я пытался извлечь эту строку nmbr, используя MsgBox ActiveCell.Row, но использование InputBox не делает записанный там адрес ячейки активной ячейкой.

Sub update_custdb_from_id_number_to_the_right()
   Application.ScreenUpdating = False
   'Application.DisplayAlerts = False

   Dim wordApp As Word.Application            'it is assigned to button #2    'user-defined type not defined
   Dim wordDoc As Word.Document               '[0-9]{1;5}[ ]{1;2}/[0-9]{4}
   Dim excelApp As Excel.Application
   Dim mySheet As Excel.Worksheet
   Dim Para As Word.Paragraph
   Dim wordRng As Word.Range
   Dim fullName As Word.Range
   Dim exclRng As Excel.Range
   Dim scndRng As Excel.Range
   Dim address As Excel.Range

   Dim pStart As Long
   Dim pEnd As Long
   Dim Length As Long
   Dim startPos As Long
   Dim endPos As Long
   Dim parNmbr As Long
   Dim x As Long
   Dim flag As Boolean
   Dim sCell As String
   Dim idNmbr As String
   Dim peselFromContract As String
   Dim lngRow As Long
   Dim textToFind1 As String

   'Assigning object variables and values
   Set wordApp = GetObject(, "Word.Application")       'At its simplest, CreateObject creates an instance of an object,
   Set excelApp = GetObject(, "Excel.Application")     'whereas GetObject gets an existing instance of an object.
   Set wordDoc = wordApp.ActiveDocument
   Set mySheet = Application.ActiveWorkbook.ActiveSheet
   'Set MySheet = excelApp.ActiveWorkbook.ActiveSheet
   'Set scndRng = ActiveSheet.Range("A10:J40").Find("cena", , xlValues)
   Set scndRng = ActiveSheet.Range("A1")
   textToFind1 = "ważnym do dnia"

   'sCell = ActiveWorkbook.ActiveSheet.Range(Application.InputBox(Prompt:="Pick the Cell", Type:=8)).Value              'sCell = Range(Application.ActiveWorkbook.ActiveSheet.InputBox(Prompt:="Pick the Cell", Type:=8)).Value
   ' Application-defined or object-defined error
   sCell = Application.InputBox(Prompt:="Pick the Cell", Type:=8).Value
   'MsgBox ActiveCell.Row
   sCell = Trim(sCell)
   Debug.Print sCell
   lngRow = 2
   x = 11

User @ Nare sh предложил добавить строку lngRow = Application.InputBox(Prompt:="Pick the Cell", Type:=8).Row, которая у меня работает, но имеет один существенный недостаток.

обратная сторона - мне нужно ввести адрес ячейки 2 раза. Сначала назначьте переменную sCell и второй раз, чтобы назначить номер строки, используя:

lngRow = Application.InputBox(Prompt:="Pick the Cell", Type:=8).Row строку.

Что мне нужно, так это автоматически извлечь номер строки из записанного адреса в InputBox, не прерывая выполнение кода в другой раз, только для ввода того же адреса во второй раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...