/ / VBA Objektová premenná nie je nastavená pri práci s výberom a rozsahom - excel, vba, range, selection

VBA objektová premenná nie je nastavená pri práci s výberom a rozsahmi - excel, vba, rozsah, výber

Snažím sa rozdeliť čiary, ktoré obsahujú nejakú hodnotuv programe Excel VBA. Problém nie je v rozdelení a kopírovaní riadkov (nie som tam ešte!), Ale v metóde „Application.Intersect“. Myslím, že míňam 2 rozsahy, ale program sa zrúti s chybou „Premenná objektu alebo blokovaná premenná nie set ". Keď ich tlačím, vidím niečo ako „$ A $ 2 $ C $ D nepravdivé“ v závislosti od toho, čo som si vybral ... Čo robím zle?

Mám tento kód,

Sub SplitRows()
Dim LastRow As Long, _
WS1 As Worksheet, WS2 As Worksheet, _
i As Long, j As Integer, ii As Long, X, Y, _
MySelection As Range

Set WS1 = Sheets("Foglio1")
Set WS2 = Sheets("Foglio2")
LastRow = Range("A" & Rows.Count).End(xlUp).Row

With WS1
.Range(.Cells(1, 1), .Cells(1, Columns.Count)).Copy
End With

With WS2
.Cells(1, 1).PasteSpecial
End With

Application.CutCopyMode = False

For i = 2 To LastRow
Dim A As Range, SplitSize As Long

For ii = 1 To Columns.Count
Set A = WS1.Cells(i, ii)
Set MySelection = Selection
MsgBox A.Address & " " & MySelection.Address & " " & (Application Is Nothing)

If Not (Application.Intersect(A, MySelection)) Is Nothing Then
SplitSize = UBound(Split(WS1.Cells(i, ii).Value, ","))
Exit For
End If
Next ii
MsgBox "SplitSize is" & SplitSize
Next i

End Sub

Riešenie tu Stačí to vymeniť

If Not (Application.Intersect(A, MySelection)) Is Nothing Then

s tým

If Not (Application.Intersect(A, MySelection) Is Nothing) Then

odpovede:

3 pre odpoveď č. 1

Najprv musíte križovatke priradiť objekt a potom skontrolovať, či to nie je nič:

    Set isect = Application.Intersect(A, MySelection)
If Not isect Is Nothing Then