#excel #vba
#преуспеть #vba
Вопрос:
У меня есть код, созданный для отправки данных из типа пользовательского поля статической формы (CAB) (лист AJOUTER_PV) на лист «Inventaire».
Для области обхода задан диапазон из двух строк, называемый «table1». Пример Я ввожу в ручное поле статической формы идентификатор С ИМЕНЕМ «CAB», и этот уникальный идентификатор будет отправляться в первые строки первой, второй, третьей … строк «CAB» каждый раз, когда я нажимаю кнопку макроса (и с помощью vlookup для других строк данные отображаются в каждой строке).
Проблема в том, что я получаю ошибки несоответствия типов 13, ошибки объявления, ошибки компиляции, не определенный блок (от LastRow
……. до .row
блока)… поэтому я даже не могу разрешить один, чтобы получить новый.
Я ожидаю ошибки, связанной с WX
za
WsPV
WsInv
синтаксисом .. и соответствующими настройками объявления.
Полный код:
Option Explicit
Sub Macro1()
'
' Macro1 Macro
'
Dim WsPV As Range
Dim WsInv As Range
Set WsPV = Worksheets("AJOUTER_PV")
Set WsInv = Worksheets("Inventaire")
Dim Id As Variant
Set Id = WsPV.Cells(6, "K").Value
Dim LastRow As Long
Dim WX As Range
Set WX = Range("table1").ListObjects
Dim za As Range
Set za = WsInv.WX
Dim LastRow As Variant
LastRow = WsInv.Find(What:=" * ", _
After:=WsInv.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
WsInv.Parent.Cells(LastRow 1, 1).Value = Id.Value
'
End Sub
Любая помощь будет оценена. С уважением.
Комментарии:
1. В этом коде есть только одна ошибка времени компиляции, повторяющееся объявление
LastRow
. Удалите одну из них. Однако существует множество ошибок во время выполнения из-за всех объявленных переменныхAs Range
, хотя ни одна из них не хранит диапазоны.2. Итак, что вы предлагаете с объявленными переменными.. например, для удаления объявлений?
3. Объявить их как то, что они должны содержать.
WsPV
предполагается, что он содержит рабочий лист, поэтому объявите егоAs Worksheet
.