2013-07-05 3 views
0

Je veux la syntaxe VBA pour la référence d'une cellule au lieu de la valeur.Syntaxe VBA pour la référence d'une cellule au lieu de la valeur de la cellule

Je sais que

Workbook().Worksheet().Cell().Value renvoie la valeur de la cellule.

Je veux connaître la référence de cellule, quelque chose comme ça ='[Vba Source Test.xlsx]Source'!$B$8

J'ai essayé d'utiliser:

workbook().worksheet().cell().address 

mais il retourne seulement la partie $B$8.

Je vais l'utiliser dans un code comme celui-ci.

Workbook(Master).Worksheet(Summary).range(a1).value = 
workbook(Source).Worksheet(Data).cell(2,8).address 

Merci encore pour quiconque peut vous aider.

Répondre

1

Vous devez concaténer les noms des objets & l'adresse de la plage, avec les séparateurs appropriés:

"='["Workbook(Source).Name & "]" & Worksheet(Data).Name & "'" & Cells(2,8).Address

Parce que ce que vous faites est d'attribuer une valeur String-Formula de la cellule, je pense que cela devrait fonctionner (mais je ne l'ai pas testé, donc il peut y avoir une faute de frappe):

Dim myFormula as String 
myFormula = "='["Workbook(Source).Name & "]" & Worksheet(Data).Name & "'!" & Cells(2,8).Address 

Workbook(Master).Worksheet(Summary).range(a1).Formula = myFormula 

Vous pouvez être en mesure d'omettre le classeur Name de Je suis certain que le nom du classeur est automatique tant que vous spécifiez la feuille de calcul appartenant à un classeur ouvert. Si le fichier n'est pas ouvert lorsque vous insérez la formule, vous devrez inclure le nom du classeur.

+1

Merci beaucoup, je vais bricoler avec la formule. Un peu déroutant depuis que j'ai mis mes classeurs à certains noms. Vous pourriez penser qu'Excel a une propriété intégrée pour cette situation. – Reccax

+1

J'ai commencé à travailler. la partie manquante était "!" WSMaster.Cells (master2, master1) .Value = "= '[" & sourcetext & "]" & sourcetext1 & "'" & "!" & Adresse 1 – Reccax

Questions connexes