VBA Dynami c значение переменной - PullRequest
0 голосов
/ 28 мая 2020

Нет глупых вопросов, только глупые люди задают вопросы. Я мог бы попасть в эту категорию прямо сейчас.

Я хочу достичь следующего:

Sub test
Dim lastcolumn as long
lastcolumn = Range("A1").End(xlToRight).Column
DebugPrint lastcolumn '=5
'Add 2 columns between first and last col
DebugPrint lastcolumn '=7
End Sub

прямо сейчас мне нужно сделать следующее:

Sub test
Dim lastcolumn as long
lastcolumn = Range("A1").End(xlToRight).Column
DebugPrint lastcolumn '=5
'Add 2 columns between first and last col
lastcolumn = Range("A1").End(xlToRight).Column
DebugPrint lastcolumn '=7
End Sub

Итак Я получаю

lastcolumn = Range ("A1"). End (xlToRight) .Column

повсюду

Что правильно как это сделать?

1 Ответ

0 голосов
/ 28 мая 2020

А что насчет этого? Это плохо ? Может быть неэффективным

'Option Explicit

Public Enum DynamicVar
    lastcolumn
    lastrow
End Enum

Public Function MyVar(name As DynamicVar) As Variant

If name = lastcolumn Then
    MyVar = Cells(1, Columns.Count).End(xlToLeft).Column
    Exit Function

ElseIf name = lastrow Then
    MyVar = Cells(Rows.Count, 1).End(xlUp).Row
    Exit Function

End If

End Function

Sub test()
Cells(MyVar(lastrow), MyVar(lastcolumn)).value = "Wathever"
End Sub'

Изменить: может быть, это немного лучше

Public Function MyVar(name As DynamicVar) As Variant

Select Case name

    Case lastcolumn
        MyVar = Cells(1, Columns.Count).End(xlToLeft).Column

    Case lastrow
        MyVar = Cells(Rows.Count, 1).End(xlUp).Row

End Select

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...