VBA的Excel - 从细胞

VBA的Excel - 从细胞

问题描述:

...我已经寻找这一切的一天,但一直没能解决它定义簿和工作表变量的值,所以希望你们能够帮助:)VBA的Excel - 从细胞

目的: 对于单独工作簿(从中运行此代码)中的指定工作表,对于列O中的行号列表,脚本应运行并突出显示所有对应的行号为黄色。

语境: 我的审计,所以我们经常有从Excel工作簿挑随机样本,与行的1000,然后手动突出的随机选择。我想自动执行此过程。

具体问题: 有我的循环工作,并强调黄色,但似乎无法得到变量为“目标位置”的,我想代码运行工作。当我对“Sheet2”进行硬编码时,它可以在Sheet 2上工作。但是,即使我尝试使用单元格值作为变量,并在该单元格中放置“Sheet2”,它也不起作用。我已经尝试了比以下内容更多的方法,但是我只是整理了当前的代码并粘贴到下面。对于终端交付

详细信息(以下所有输入是在一个单页WB,表名称被称为“随机”: - 用户输入单元格A5 一个文件夹位置 - 用户在小区A6进入文件夹位置 - 用户进入细胞A7 表名称 - 号码的用户糊剂列表用于突出到O列 - 用户应该然后点击“高亮样品”按钮的量,代码应该然后突出显示所有行号在O列黄色目标工作表中目标工作簿。

代码 (从另一个后修饰):

Sub sample() 
    Dim i As Long, workbk As Workbook, worksh As Worksheet 

    On Error GoTo Whoa 

    Application.ScreenUpdating = False 


    Set worksh = Sheets("Sheet2") 'Hard-coded, this works 

    'Set worksh = Range("B6").Value 'Doesn't work 
    'Set worksh = Sheets(Range("pickupsheetname")) 'Doesn't work 


    With Sheets("RandomList") 
     For i = 1 To 30 
      If Not Len(Trim(.Range("O" & i).Value)) = 0 And _ 
      IsNumeric(.Range("O" & i).Value) Then _ 
       worksh.Rows(.Range("O" & i).Value).Interior.ColorIndex = 6 '<~~ Yellow 
     Next i 
    End With 

LetsContinue: 
    Application.ScreenUpdating = True 
    Exit Sub 
Whoa: 
    MsgBox Err.Description 
    Resume LetsContinue 
End Sub 
+0

对于**具体问题**,你尝试'设置worksh =表(范围( “B6”)。值)'...? – bobajob

试试这个,它为我工作(只要在单元格的值是表的名称):

Set worksh = Sheets(Range("B6").Value) 

之所以

Set worksh = Range("B6").Value 

不起作用是因为现在worksh正试图设置为变体。您仍然需要将该单词和您在解决方案中看到的那对括号放在一起作为工作表。 :)