我有10张名字从“1Store”到“10Store”的名单,并且在每张床单中,每人有10张人,每张16张照片,详情如下:
工作表“1Store”(总共2 x 8 x 10张图片,所有图片名称不同)
第1店铺的第1人:
- 2张名为“No1-1-A”,“Yes1-1-A”(保留给单元格“P16”)的图片
- 2张名为“No1-1-B”,“Yes1-1-B”(保留给单元格“P31”)的图片
(...)
- 2张名为“No1-1-H”,“Yes1-1-H”的图片(保留给单元格“P115”)
第一店的人2:
- 2张名为“No2-1-A”,“Yes2-1-A”的图片(保留给单元格“AE16”)
- 2张名为“No2-1-B”,“Yes2-1-B”(保留给单元格“AE31”)的图片
(...)
- 2张名为“No2-1-H”,“Yes2-1-H”的图片(保留给单元格“AE115”)
依旧...... ultil
第一店的第10人:
- 2张名为“No10-1-A”,“Yes10-1-A”的图片(保留给单元格“FC16”)
- 2张名为“No10-1-B”,“Yes10-1-B”(保留给单元格“FC31”)的图片
(...)
- 2张名为“No10-1-H”,“Yes10-1-H”的图片(保留给单元格“FC115”)
然后纸张继续直到表单“10Store”,如下所示:
工作表“10Store”(总共2 x 8 x 10张图片,所有图片都有不同的名称)
第10店铺的第1人:
- 2张名为“No1-10-A”,“Yes1-10-A”(保留给单元格“P16”)的图片
- 2张名为“No1-10-B”,“Yes1-10-B”的图片(保留给单元格“P31”)
(...)
- 2张名为“No1-10-H”,“Yes1-10-H”的图片(保留给单元格“P115”)
第10店铺的第2人:
- 2张名为“No2-10-A”,“Yes2-10-A”的图片(保留给单元格“AE16”)
- 2张名为“No2-10-B”,“Yes2-10-B”的图片(保留给单元格“AE31”)
(...)
- 2张名为“No2-10-H”,“Yes2-10-H”的图片(保留给单元格“AE115”)
第10店铺的第10人:
- 2张名为“No10-10-A”,“Yes10-10-A”的图片(保留给单元格“FC16”)
- 2张名为“No10-10-B”,“Yes10-10-B”(保留给单元格“FC31”)的图片
(...)
- 2张名为“No10-10-H”,“Yes10-10-H”的图片(保留给单元格“FC115”)
...如在第1人(单元格P),第2人(单元格AE),第3条(单元格AU), 人4(细胞BK),人5(细胞CA),人6(细胞CQ),人7 (细胞DG),人8(细胞DW),人9(细胞EM),人10(细胞FC)*
[问题]:我收到“VBA运行时错误1004:找不到指定的项目。”所有图片都在那里并命名。我该如何使用该脚本?
Sub test()
Dim i,j As Integer
i=1 'Store
j=1 'Person
For i = 1 To 10
For j = 1 to 10
If Sheets("" & i & "Store").Range("P16").Value = 0 Then
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-A")).Visible = True
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-A")).Visible = False
Else
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-A")).Visible = False
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-A")).Visible = True
End if
If Sheets("" & i & "Store").Range("P31").Value = 0 Then
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-B")).Visible = True
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-B")).Visible = False
Else
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-B")).Visible = False
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-B")).Visible = True
End if
(...)
If Sheets("" & i & "Store").Range("FC115").Value = 0 Then
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-H")).Visible = True
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-H")).Visible = False
Else
Sheets("" & i & "Store").Shapes.Range(Array("No" & j & "-" & i & "-H")).Visible = False
Sheets("" & i & "Store").Shapes.Range(Array("Yes" & j & "-" & i & "-H")).Visible = True
End if
(...) Above, it correlates all 10 Persons with all 10 stores (from P16-A,..., FC115-H)
Next j
Next i
End Sub
答案 0 :(得分:0)
From the documentation:“可以是指定形状索引号的整数,指定形状名称的字符串,或包含整数或字符串的数组。”除非您的形状名为“是”,“否”,1,2等,否则Array
调用不会执行任何操作。您只需要执行简单的连接:
Sheets(i & "Store").Shapes.Range("No" & j & "-" & i & "-A").Visible = True