Использовать преобразованную букву столбца в диапазоне VBA - PullRequest
0 голосов
/ 31 марта 2020

Мне удалось найти номер столбца и преобразовать его в букву, но я не могу понять, как использовать преобразованную букву при определении диапазона. Я продолжаю получать ошибку времени выполнения 1004.

Я пытаюсь определить столбец, который содержит наибольшее значение в указанной строке c. Затем используйте этот столбец, чтобы найти первую ненулевую ячейку и вставить строку. Ниже мой код:

  Sub ColNBR_Insert()
 Dim maxCol As Long
 Dim rngMaxCell As Range, rngVals As Range, C As Range, Where As Range
 Dim lastNum0 As String
 Dim ColLtr As String

 Set rngVals = Worksheets("Charts").Range("F3:M3")

 With Application.WorksheetFunction

 Set rngMaxCell = rngVals.Find(.max(rngVals), LookIn:=xlValues)

 If Not rngMaxCell Is Nothing Then
 maxCol = rngMaxCell.Column

' MsgBox "The max value is in column " & maxCol
 End If

 End With

 Set rngVals = Nothing
 Set rngMaxCell = Nothing

'Convert To Column Letter
ColLtr = Split(Cells(1, maxCol).Address, "$")(1)

'Display Result
'MsgBox "Column " & maxCol & " = Column " & ColLtr

lastNum0 = "<>0"
Set C = Range(Range(ColLtr), Range(ColLtr))

C.Find(What:=lastNum0, After:=C(1), SearchDirection:=xlPrevious).Select
Selection.Offset(1).EntireRow.Insert Shift:=xlDown

End Sub

1 Ответ

0 голосов
/ 31 марта 2020

Нет необходимости делать все это преобразование ... просто используйте Columns.

Set C = Range(Range(ColLtr), Range(ColLtr))

, хотя проблематично c, вероятно, легче сделать с

Set C = Columns(maxCol)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...