小编SJR*_*SJR的帖子

使用 VBA 在 Excel 中选择形状

我正在尝试使用 VBA 按名称选择形状。在我的工作表中,我有 10 个形状,名称分别为 1 到 10,并且想要一个特定的形状。由于某种原因,excel 使用我的代码选择的形状似乎不是我告诉它选择的名称的形状。据我所知,它选择的形状是随机的。这是我的代码(x 值应该检索我输入的从 1 到 10 的数字值):

Sub FindTheShape()

Sheets("Fleet 1").Select
Dim x As Long
x = ActiveSheet.Range("$A$1000").End(xlUp).Value

ActiveSheet.Shapes(x).Select

End Sub
Run Code Online (Sandbox Code Playgroud)

请帮忙,任何想法都将不胜感激。

excel vba shapes

4
推荐指数
1
解决办法
2万
查看次数

循环(姓名)表格

我的问题实际上很简单,但我找不到解决方案.我有很多具有不同名称的表格,可由用户修改.我已经为每个工作表添加了一个背景名称,因此对于我的前两张工作表,他们在我的VBA项目中的名称如下所示:

在此输入图像描述

事实是,我想做一个宏来遍历所有那些特定的表格(我有14个),我不想循环通过其他用于不同的东西,比如这个:

在此输入图像描述

使用可由用户修改的名称(在我的示例中为"General"和"Heritage")可以轻松遍历我的表格.不过,我希望用户能够随时修改此名称,如果他这样做,我的宏将无法识别工作表的新名称.对我来说非常重要的是,用户不必按下按钮或使用不同的文本框来重命名他的工作表,我不想以这种方式避免这个问题.

我想要的是能够遍历背景名称(我的例子中的S1和S2),做类似的事情(我知道下面的代码不好,但它只是给你一个例子):

Sub Example1()

Dim wksht As Worksheet

For i = 1 To 14
    Set wksht = "S" & i
    wksht.Cells(1, 1).Value = 1
Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

我知道以下代码适用于1张表:

Sub Example2()

Dim wksht As Worksheet
Set wksht = S1
wksht.Cells(1, 1).Value = 1
Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

问题是我之前的代码中的S1不是字符串,所以我不能使用"S"和i循环.我的问题有解决方案吗?

excel vba spreadsheet excel-vba

0
推荐指数
1
解决办法
152
查看次数

标签 统计

excel ×2

vba ×2

excel-vba ×1

shapes ×1

spreadsheet ×1