VBA cell.find возвращает значения вместо адреса - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть две таблицы в одной и той же книге, в листах ("送達 raw") хранятся необработанные данные, в листах ("送達 證書") для ввода пользователем строки, которую они хотят найти, как показано ниже.

Private Sub OpenAddress()

Dim addressNum As Integer
Dim addressString As String
Dim name As String
Dim findCell As Range

Count = TB1.Value
'TB1.Value is the string which type by user

Set findCell = Worksheets("送達地址").Columns("A").Cells.Find(what:=Count, lookat:=xlWhole, LookIn:=xlValues)

If findCell Is Nothing Then

MsgBox "not found"
isPass = False

Exit Sub

End If

For i = 1 To People

S = 2

With Worksheets("送達地址")
    .findCell.Offset(0, 1).Value = name
    .findCell.Offset(0, 2).Value = addressNum
    .findCell.Offset(0, 3).Value = addressString

End With

With Worksheets("送達證書")

.Cells(S, 1).Value = name
.Cells(S, 3).Value = addressNum & "  " & addressString

S = S + 1
i = i + 1

End With

Next i

S = 2

End Sub

Проблема в том, что переменная findCell приводит к возвращению введенной вами строки вместо ее адреса.

Пример: вы хотите найти, где находится строка "1", но findCell возвращает "1" вместо возврата адрес "1" есть.

1 Ответ

0 голосов
/ 07 ноября 2018

На самом деле он возвращает объект диапазона (одну ячейку) со значением ячейки, отображаемым при наведении на него курсора. Вам не нужно первое утверждение With, findcell.offset будет работать без «.» Перед ним.

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