Excel VBA erreur d'Exécution '424': Objet Requis lors de la tentative de copie de zone de texte
Je suis d'essayer de copier le contenu d'une zone de texte à partir d'un workbook
à l'autre. Je n'ai pas de problème de copie des valeurs de cellule de la première workbook
pour le 2ème, mais j'obtiens une object required
d'erreur lorsque je tente de copier la zone de texte. Cette macro
est en cours d'exécution dans le classeur contenant les données que je veux copier. À L'Aide De Excel 2007
Code:
Sub UploadData()
Dim xlo As New Excel.Application
Dim xlw As New Excel.Workbook
Set xlw = xlo.Workbooks.Open("c:\myworkbook.xlsx")
xlo.Worksheets(1).Cells(2, 1) = Range("d4").Value 'Copy cell content (this works fine)
xlo.Worksheets(1).Cells(2, 2) = TextBox1.Text 'This gives me the object required error
xlw.Save
xlw.Close
Set xlo = Nothing
Set xlw = Nothing
End Sub
Merci pour toute aide.
- Tu essayé avec l'Application complète.ActiveWorkbook.ActiveSheet.TextBox1? Pouvez-vous vérifier si le ActiveWorkbook/ActiveSheet n'est pas xlw? Si c'est le cas, il vous suffit de définir un objet active document avant d'en ouvrir une autre.
essayez cette
Je reçois un "objet ne gère pas cette propriété ou méthode" avec l'une de vos solutions de chef & KazJaw
Mais avez-vous vérifier ce ActiveWorkbook/ActiveSheet faites référence? Semble comme il se réfère à
test option courte
essayez cette
...= activesheet.TextBox1.Object.value
ou .Text
de la propriété à la fin devrait travailler tropJe reçois un "objet ne gère pas cette propriété ou méthode" avec l'une de vos solutions de chef & KazJaw
Mais avez-vous vérifier ce ActiveWorkbook/ActiveSheet faites référence? Semble comme il se réfère à
xlw
(c:\myworkbook.xlsx) et non pas le document à l'endroit où est situé TextBox1
.test option courte
...= Activesheet.TextBox1.Text
Il est important de faire précéder l'utilisateur, les contrôles de la feuille de l'objet. Toutefois, si cela ne fonctionne pas, pourriez-vous faire une capture d'écran de votre zone de texte et ajouter un lien vers l'image ici?OriginalL'auteur Sam WB | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Le problème avec votre macro, c'est que une fois que vous avez ouvert votre destination Classeur (
xlw
dans l'exemple de code), il est défini comme la ActiveWorkbook objet et vous obtenez une erreur car TextBox1 n'existe pas dans l' Classeur. Pour résoudre ce problème, vous pouvez définir un objet de référence pour votre Classeur avant d'ouvrir l'autre.Si vous préférez, vous pouvez également utiliser
myWb.Activate
pour remettre vos principales Classeur comme active. Il fonctionne également si vous le faites avec un Feuille de calcul objet. À l'aide de l'un ou l'autre dépend essentiellement de ce que vous voulez faire (si il y a plusieurs feuilles, etc.).OriginalL'auteur dnLL
Je pense que la raison que cela se passe peut-être parce que
TextBox1
est portée pour le module VBA et ses associés, tandis que la Gamme est étendue à la "Feuille Active".MODIFIER
Il semble que vous pouvez être en mesure d'utiliser le GetObject fonction pour tirer la zone de texte à partir du classeur.
Cela aurait dû être posté un commentaire, pas une réponse.
Pourquoi? C'est une réponse, pas un commentaire ou une question. Ce n'est pas aussi complet que votre réponse, mais c'est une réponse par définition.
Je suppose que vous faites référence à la 8e définition. Je ne pense pas que les 2 phrases commençant par "je pense" et "peut-être" est une réponse.
Bon point...donc peut-être un peu de 8?
OriginalL'auteur Seth Moore
Le problème avec cette ligne
Vous avez la zone de texte défini à un autre endroit sur lequel vous ne l'utilisez pas ici. Excel est pas en mesure de trouver la zone de texte objet dans la feuille lors de cette zone de texte est défini dans xlw.
Donc de remplacer ce dernier par
OriginalL'auteur kunal