繁体   English   中英

我可以在VBA中使用shape.width作为条件吗

Can I use shape.width as condition in vba

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想在if中使用形状的宽度作为条件。 我下面的代码是自动将数字添加到单元格范围内的形状上。

Sub numShapeMasqueD()

    Dim shapeTemp As Shape
    Dim masqueD As Range
    Dim cpt As Integer
    Dim row As Long, col As Long
    Set masqueD = Range("h22:r31")
    cpt = 1

    For row = 1 To masqueD.Rows.Count
        For col = 1 To masqueD.Columns.Count 
            For Each shapeTemp In ActiveSheet.Shapes
                If Not Intersect(masqueD.Cells(row, col), shapeTemp.TopLeftCell) Is Nothing Then
                        shapeTemp.TextFrame.Characters.Text = cpt 
                        cpt = cpt + 1
                End If
            Next shapeTemp
        Next col
    Next row

End Sub

我尝试使用shapeTemp.width作为shapeTemp.width中的条件。 我想做的是,如果shapeTemp的宽度低于12.97016,然后设置shapeTemp.TextFrame.Characters.Font = 8

我希望我能清楚地解释我的问题。

2 个回复

代替,

为什么不制作另一个变量并将其值设置为ShapeTemp.Width就像吉普车注释一样,您实际上需要声明shapeTemp。

Dim shapeTemp as Shape
Dim shapeWidth as Double

shapeWidth = shapeTemp.Width

If shapeWidth = 12.907016 then
   shapeTemp.TextFrame.Characters.Font = 8
End If

您声明了局部变量shapeTemp ,但未将其设置为任何值。 您需要将shapeTemp设置为某种值。 这是有关VBA中变量范围的更多信息:

https://support.microsoft.com/en-us/help/141693/scope-of-variables-in-visual-basic-for-applications

以下是有关如何设置shapeTemp

要创建新形状:

Set shpTemp = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 10, 10, 100, 100)

要检索shapes集合中已经存在的第一个形状:

Set shpTemp = ActiveSheet.Shapes(1)

您还可以将shpTemp设置为另一个现有形状,或者可以使用参数/参数将形状对象传递到过程中。

3 在 VBA 中使用标头作为条件

我需要一些有关以下 VBA 代码的帮助: 这是从以下站点( https://www.goodly.co.in/automated-filter-with-macro/ )复制的代码,我不知道 VBA,但我找到了一个适合我需要的代码,但我不能让它工作。 这个想法是使用标头作为条件进行过滤,但我有 ...

2021-02-25 12:32:50 1 23   excel/ vba
4 在VBA中使用变量作为过滤条件

我试图在使用VBA的日期之前进行过滤,我记录了一个宏作为添加变量的基础。 SDatesel是含有的串联的可变"<" &SDATE SDate是由用户在销售的AC定义的开始日期"Base Sheet"标签 字符串很好,因为在调试模式下它们正确显示 它在线上摔倒了 ...

5 在具有筛选条件的VBA中使用Vlookup

我想在这里完成的是 1)是要对O列中的值进行迭代,对于非null的值,请进行迭代-过滤名为DATA的工作表,以仅显示B列= X的值,并使用VLOOKUP()将查找值返回到P列中的对应行 2)如果O列为空,则过滤标题为DATA的表以仅显示B列> X的值,并使用VLOOKUP() ...

10 如何在Rainmeter中使用Shape而不是Bar with Measure

我有雨表皮肤来测量网络速度。 它可以与Bar一起正常工作,但我想将Bar更改为Shape以具有更多的自定义设置。 当前代码如下: 我想用Shape更改条形表,但我不知道如何从度量中获取百分比值: 我该如何实现? 谢谢 :) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM