静态列和变量为Row

问题描述 投票:0回答:2

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

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

比如,我如何将“myRow”放在Formula1中:=“= $ BA $ 13 =”“Y”“”

再次感谢,

excel vba excel-vba
2个回答
0
投票
dim myRow as long

myRow = <foo>

Set myRange = Range("N" & myRow)

顺便说一句:避免在你的代码中使用.Select,它会减慢速度并导致其他困难


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
© www.soinside.com 2019 - 2024. All rights reserved.