J'ai un problème dans VBA avec une ligne renvoyant une erreur.
Ce que la macro est destinée à faire est de trouver une cellule particulière puis d'y coller des données.
Le code est le suivant:
'To find Column of Customer imput
For Each cell In Range("B4:M4")
If cell.Value = strLeftMonth Then
DataImportColumn = cell.Column
End If
Next
For Each cell In Worksheets("data customer monthly 2013").Range("A3:A9999")
'First Customer
If cell.Value = strFirstCustomer Then
DataImportRow = cell.Row
Range(DataImportColumn & DataImportRow).Offset(0, 2).Value = iFirstCustomerSales ****
End If
Après avoir exécuté le code ci-dessus; Le code se bloque donnant le 1004 run-time error
sur le asterisk'd
ligne. DataImportColumn
a également une valeur de 7
et DataImportRow
a une valeur de 5
.
Maintenant, ma préoccupation est que les colonnes ne sont pas référencées comme des chiffres mais comme des lettres, il doit donc être que mon code ne puisse jamais fonctionner car c'est une référence terrible.
Quelqu'un a-t-il des suggestions sur la façon dont je peux faire fonctionner ce qui précède?
La valeur de votre plage est incorrecte. Vous faites référence à la cellule "75" qui n'existe pas. Vous voudrez peut-être utiliser la notation R1C1 pour utiliser facilement les colonnes numériques sans avoir besoin de les convertir en lettres.
http://www.bettersolutions.com/Excel/EED883/YI416010881.htm
Range("R" & DataImportRow & "C" & DataImportColumn).Offset(0, 2).Value = iFirstCustomerSales
Cela devrait résoudre votre problème.
Changement
Range(DataImportColumn & DataImportRow).Offset(0, 2).Value
à
Cells(DataImportRow,DataImportColumn).Value
Lorsque vous n'avez que la ligne et la colonne, vous pouvez utiliser l'objet cells()
. La syntaxe est Cells(Row,Column)
Aussi une astuce de plus. Vous voudrez peut-être qualifier entièrement votre objet Cells
. par exemple
ThisWorkbook.Sheets("WhatEver").Cells(DataImportRow,DataImportColumn).Value