工作表名称是一个数字,如何在vba中调用它?

And*_*eas 1 excel vba excel-vba

我有名单1 2 3等等.
这些数字列在H栏的表格中.

For i = 5 To LastRow
    If Range("J" & i).Value = "NOT OK" Then
       Sheets(Range("H" & i).Value).Tab.Color = RGB(255, 0, 0)
    End If
Next i
Run Code Online (Sandbox Code Playgroud)

这会尝试将第1页中的sheet(1)调用为1.但1实际上(目前)是表(3).

我试图"使Excel将其作为字符串读取但它也失败了.

Sheets(Chr(34) & Range("H" & i).Value & Chr(34)).Tab.Color = RGB(255, 0, 0)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

QHa*_*arr 7

尝试

Worksheets(CStr(1))
Run Code Online (Sandbox Code Playgroud)

CStr将转换为字符串,因此您按名称引用而不是索引.

或者使用.Text酒店

Sheets(Range("H" & i).Text)
Run Code Online (Sandbox Code Playgroud)

  • **请**松开`Select`,你比这更好;) (6认同)
  • @Andreas它可以在没有'Select'的情况下工作,我知道QHarr试图制造这一点,但仍然建议远离使用'Select`99.9% (2认同)