2017-07-17 126 views
0

我正在尝试使用某些变量编写宏。具体的工作表名称。几乎每次我必须在宏中找到正确的工作表名称,所以工作表名称来自单元格值。但是将变量引用到另一个变量会导致错误。将变量的范围分配给另一个变量

向下可以看到分配部分的代码。我愿意接受任何建议。

太感谢你了..

Dim pLastRow As Long 
Dim p As Integer 


    pLastRow = WorksheetFunction.Max(Worksheets(WS_All).Range("AA22:AA1100")) 
    pLastRow2 = pLastRow + 21 
     For p = 22 To pLastRow2 
       If Cells(p, 26).Value = "" Then 
        WS_1 = Worksheets(WS_All).Cells(p, 16).Value 
        WS_2 = Worksheets(WS_All).Cells(p, 19).Value 
        WS_3 = Worksheets(WS_All).Cells(p, 22).Value 
       End If 
Dim j As Long 
For j = 1 To 3 
Dim j_WS As Variant 
j_WS = "WS_" & j 
MsgBox Worksheets(j_WS).Cells(1, 1).Value 
o = 14 + j * 3 
Dim WA1 As String 
Dim WA2 As String 
Dim WA3 As String 
Gorev = Worksheets(WS_All).Cells(p, o).Value 
SlideNo = Worksheets(WS_All).Cells(p, 34).Value 
Egitim_Adi = Worksheets(WS_All).Cells(2, 3).Value 
Dim Check1 As Range 
Set Check1 = Worksheets(j_WS).Columns("A") 'Egitim_Adi Kontrolü için' 
Dim Check2 As Range 
Set Check2 = Worksheets(j_WS).Columns("B") 'SlideNo Kontrolü için' 
Dim Check3 As Range 
Set Check3 = Worksheets(j_WS).Columns("C") 'Gorev Kontrolü için' 
+0

正如你所看到的,WS_1,WS_2和WS_3解决方案值来自名为WS_All的工作表,该工作表也是从范围中预定义的。 我想要做的是根据这些工作表(WS_1 ...)的行,有另一个工作表名称,他们被称为WA1,WA2和WA3。 我想使用名为“j”范围的WA1,WA2和WA3,并将它们与j_WS一起使用。 当我用F8运行代码时,我发现j_WS等于WS_1或WS_2。但是我希望j_WS等于WS_1的值,它是一个真正的工作表名称。 – Bildircin13

回答

0

我发现使用数组,并使用3箱WS_1,2和3