Установить смещения переменных на основе расположения пустой ячейки - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь установить "x" и "y" как переменные целые числа, где "x" займет место 9, а "y" займет место 10 в местах смещения, перечисленных ниже.«x» и «y» должны будут изменить значение в зависимости от того, где находится первая пустая ячейка в строке, соответствующая «t».Таким образом, если столбец 9 рабочего листа пуст, «x» будет равен 9, а «y» будет равен 10, а если столбец 7 будет пустым, «x» будет равен 7, а «y» будет равен 8 и т. Д.Я не совсем уверен, с чего начать.Любая помощь приветствуется!

Sub FindRow1()
Dim t As Range
Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range
Dim g As Range
Dim h As Range
Dim i As Range
Dim j As Range
Dim k As Range
Dim l As Range
Dim m As Range
Dim n As Range
Dim o As Range
Dim p As Range
Dim x As Integer
Dim y As Integer


With Worksheets("Recap Sheet").Cells
Set t = .Find("Year of Tax Return", After:=.Range("A1"), 
LookIn:=xlValues).Cells
Set c = .Find("12. Total Gross Annual Cash Flow", 
After:=.Range("A1"), LookIn:=xlValues).Cells
Set d = .Find("15. Total Annual Cash Flow Available to 
Service Debt", After:=.Range("A1"), LookIn:=xlValues)
Set e = Range(t.Offset(1, 0), c.Offset(-1, 0))
Set f = Range(c.Offset(1, 0), d.Offset(-1, 0))
Set i = Range(t.Offset(1, 9), c.Offset(-1, 9))
Set j = Range(c.Offset(1, 9), d.Offset(-1, 9))
Set k = Range(t.Offset(-1, 9), d.Offset(0, 10))
Set l = Range(t.Offset(1, 9), d.Offset(0, 9))
Set m = Range(t.Offset(1, 10), d.Offset(0, 10))
Set n = Range(d.Offset(0, 9), d.Offset(0, 10))
Set o = Range(c.Offset(0, 9), c.Offset(0, 10))
Set p = Range(t.Offset(0, 9), t.Offset(0, 10))
Set g = c.Offset(0, 9).Cells
Set h = d.Offset(0, 9).Cells

1 Ответ

0 голосов
/ 08 декабря 2018

Вы имеете в виду это?При использовании Find вы должны проверить, что нашли что-то, прежде чем продолжить, чтобы избежать ошибки.Кроме того, я бы предложил дать вашим переменным более значимые имена, особенно если их так много.Может запутаться.

Sub z()

Dim t As Range, x As Long, y As Long, n As Long

With Worksheets("Recap Sheet").Cells
    Set t = .Find("Year of Tax Return", After:=.Range("A1"), LookIn:=xlValues)
    If Not t Is Nothing Then
        n = t.EntireRow.SpecialCells(xlCellTypeBlanks)(1).Column
        x = n
        y = n + 1
    End If
End With

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