0
votes

Comment définir une nouvelle variable de plage à une adresse de cellule

J'ai le code ci-dessous qui fonctionne (presque) xxx

où la déclaration debug.Print est, j'aimerais que cela soit variable newrng .

Si j'essaie de définir ce Set Newrng = cellules (x, 2) .Address , je reçois une erreur:

objet requis

Qu'est-ce que je fais mal?


0 commentaires

3 Réponses :


2
votes

Vous n'avez pas besoin du .Address . Tout ce dont vous avez besoin est celui-ci: set newrng = cellules (x, 2)


1 commentaires

Cela me donne la valeur des cellules, mais je veux vraiment l'adresse. pensées?



0
votes

C'est dans une instruction "avec", vous devez donc faire référence aux membres en préfixant A "."

N'oubliez pas d'utiliser directement référence (c'est-à-dire wb.worksheets)

devrait être un exemple pour vous ... xxx


2 commentaires

J'essayais à l'origine cela, mais cela renvoie une chaîne de texte "05" lorsque je mets la période, et cela le fait 8 fois. Je suis familier avec l'utilisation de la période au sein d'une déclaration, mais cela ne fonctionne pas pour une raison quelconque. et quand j'essaye le débogage.Print Newrng.Address, il apparaît 8 fois plus de 113 dollars C $ - 120 $ C $) lorsque cela devrait faire référence à la colonne B.


C'est parce que newrng est fixé par rapport à la colonne B.



0
votes

Donc, la solution n'était pas de déclarer Newrng comme une plage. Je l'ai laissé comme une variante et le code ci-dessous fonctionne maintenant.

Sub Find_PhaseCode_Cell2()
    Dim rng As Range
    Dim newrng
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = Sheets("Control budget ")
    With ws
        Set rng = Range("b57:b64")
        With rng
            For x = 57 To 64
                If Cells(x, 2).Value <> "" Then
                    Debug.Print Cells(x, 2).Address
                    newrng = Cells(x, 2).Address
                    MsgBox newrng
                End If
            Next x
        End With
    End With
End Sub


1 commentaires

Veuillez noter que tous vos avec sont inutiles que si vous commenciez une instruction avec un point . comme .Cells . Je recommande fortement de lire sur la manière dont avec déclarations Actuall fonctionne.