Excel VBA Inputbox - Select range (Type 8), mais pas comme une plage fixe c'est à dire A1 pas de $A$1
J'ai actuellement la ligne suivante dans mon VBA
code pour une Inputbox
:
Set myValues = Application.InputBox("Please select on the spreadsheet the first cell in the column with the values that you are looking for:", Type:=8)
Cependant lorsque je sélectionne la cellule automatiquement les entrées par exemple $A$1
. Cela peut-il être modifié, sans que l'utilisateur de supprimer manuellement l' $, de sorte que la Inputbox
serait automatiquement chercher la référence de la cellule comme A1
?
Il fait partie d'un système automatisé de VLookup
macro qui fonctionne parfaitement en dehors de la VLookup
valeur fixe dans l'ensemble de la colonne.
Merci à l'avance.
Mise à jour - Voici le code complet:
Dim FirstRow As Long
Dim FinalRow As Long
Dim myValues As Range
Dim myResults As Range
Dim myCount As Integer
Sub VlookupMacroNew()
Set myValues = Application.InputBox("Please select on the spreadsheet the first cell in the column with the values that you are looking for:", Default:=Range("A1").Address(0, 0), Type:=8)
Set myResults = Application.InputBox("Please select on the spreadsheet the first cell where you want your lookup results to start:", Type:=8)
myCount = Application.InputBox("Please enter the column number of the destination range:", Type:=1)
On Error Resume Next
myResults.EntireColumn.Insert Shift:=xlToRight
Set myResults = myResults.Offset(, -1)
FirstRow = myValues.Row
FinalRow = Cells(65536, myValues.Column).End(xlUp).Row
Range(myResults, myResults.Offset(FinalRow - FirstRow)).Formula = _
"=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address & ", " & _
"'S:\Payroll\CONTROL SECTION\[Latest Data.xls]Sheet1'!$A$1:$B$100" & ", " & myCount & ", False)"
myValues commencerait par exemple, la Cellule A2 cependant, comme nous travaillons avec des listes dynamiques j'aurais besoin de la valeur de la recherche à modifier à l'A3, A4, A5, etc comme la formule est copiée vers le bas de la liste. Par la méthode inputbox à l'aide de $A$2 de la formule de recherche ne regarde que la cellule de référence.
J'ai mis à jour la description complète du code de la recherche macro
OriginalL'auteur Asim | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
Comme Tim dit, votre question n'est pas avec la méthode InputBox. Au contraire, lorsque vous définissez la formule pour l'ensemble de la gamme à la fois, il utilise
FirstRow
pour chaque cellule de la formule. Idéalement, vous devriez utiliser.FormulaR1C1
à définir la formule. Cela vous permettra de faire les formules relatives en un seul passage.La solution ci-dessous modifie le code pour mettre un non-adresse relative dans la première cellule, puis définit les formules dans les cellules restantes égale à celle de la première cellule. Lorsque vous affectez des formules comme ça, il les fait relative:
OriginalL'auteur Doug Glancy
Votre problème n'est pas avec la méthode InputBox, mais le comportement de la
Address()
méthode.Par défaut,
Address()
avec aucun paramètre renvoie une adresse absolue.sera le retour de la "non-fixe" plage d'adresses.
OriginalL'auteur Tim Williams