Wpis z mikrobloga

W #vba #excel potrzebuję w kodzie Range zrobić tak, żeby jedna z cyferek określała wiersz aktywnej komórki, a jedna z literek określała kolumnę aktywnej komórki. Przykład jak myślę, że będzie to wyglądać:
Dim x as niewiemco
Dim y as niewiemtez

Set x = ActiveCell.EntireColumn
Set y = ActiveCell.EntireRow

Range("A1:xy").Select

Prawdopodobnie staram się to zrobić w zły sposób, ale jako co w ogóle dimować takie parametry, żeby później móc wsadzić je do takiego range'a?

#pytanie #pytaniedoeksperta
  • 13
@severh: Z tym, że właśnie nie chodzi mi o konkretne komórki, tylko o taki range:
Range("M:M,13:13").Select

Z tym, że chciałbym, żeby był elastyczny i zależny od aktywnej komórki.
@Oake: Wtedy kod wyglądałby tak: Range("x:x, y:y").Select
Z tym, że nie wiem jako co zdimować i nie wiem co wyciągnąć z ActiveCella. Po prostu ActiveCell.EntireColumn. ActiveCell.EntireColumn. Adress?
@Oake: Range startuje zawsze od komórki A1
Sub abc()

Dim x, y As Integer

x = ActiveCell.Row
y = ActiveCell.Column

ActiveSheet.Range(Cells(1, 1), Cells(x, y)).Select

End Sub
czemu mój wcześniejszy kody "nie miał prawa działać"


@Oake: Po pierwsze masz nadmiarowy dwukropek po drugim iksie i to on powoduje błąd. Po drugie taki zapis excel zrozumie literalnie jako polecenie zaznaczenia kolumn X i Y; żeby przekazać do zakresu liczby przechowywane w zmiennych, musisz dołączyć je poza nawiasami operatorem "&". Po trzecie do zmiennej y zostanie przekazany numer kolumny, co obiekt Range potraktuje jako wiersz, musiałbyś zatem najpierw przerobić liczbę