静态列和变量为Row

时间:2018-03-12 19:43:46

标签: excel vba excel-vba

我试图找到一种方法,将变量号用作行并保留固定的列值,例如:

Dim Test As Long
Test = 15

Range("N & Test").Select

因此,我可以更改测试值,代码也会更改,但会保留列值。

当我使用上面的代码时,excel告诉我这个错误:

  

"运行时错误' 1004':方法'范围'对象' _global'失败

----------------------------------第一部分解决---------- -----------------

但是如果我尝试使用这样的代码如下:

Sub MyVBA()

Dim myRow As Long

myRow = 10

    Set myRange = Range("A" & myRow)   ' **Worked!!!**
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$BA$13=""Y""" ' **Here’s the problem, what can I do in this case?**
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 14474460
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False


End Sub

喜欢,我怎样才能把#my; myRow"在Formula1里面:=" = $ BA $ 13 ="" Y"""

再次感谢,

2 个答案:

答案 0 :(得分:0)

dim myRow as long

myRow = <foo>

Set myRange = Range("N" & myRow)

BTW:避免在代码中使用.Select,它会降低速度并导致其他问题

答案 1 :(得分:0)

你刚把你的语音标记(")放在错误的地方。您的两个选项是使用RangeCells。两者的例子如下。

Sub TryThis()
    Dim test As Long
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets("Sheet1")
    test = 15

    MsgBox ws.Cells(test, "N").Address
    MsgBox ws.Range("N" & test).Address
End Sub