Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图片周围的VBA Excel边框_Excel_Vba - Fatal编程技术网

图片周围的VBA Excel边框

图片周围的VBA Excel边框,excel,vba,Excel,Vba,早上好 我昨天的问题是: 我想为我的Excel文档中的大多数图像制作自动边框。 我开始录制宏,如下所示: Sub Picbodred() ' ' Picbodred Macro ' ' ActiveSheet.Shapes.Range(Array("Picture 2")).Select With Selection.ShapeRange.Line .Visible = msoTrue .ForeColor.RGB = RGB

早上好

我昨天的问题是:

我想为我的Excel文档中的大多数图像制作自动边框。 我开始录制宏,如下所示:

  Sub Picbodred()
  '
  ' Picbodred Macro
  '

  '
    ActiveSheet.Shapes.Range(Array("Picture 2")).Select
     With Selection.ShapeRange.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(0, 0, 0)
       .Transparency = 0
   End With
 End Sub
但是它只覆盖了一张图片,而且因为它已经分配了一个ID,这个ID将不一样。 除此之外,我想保留一些无边框图像,如下所示:


我该怎么做呢?

事实上,让我写下这个作为回答,嗨

如何命名所有需要边框的图片,例如:SomeName\u Border,然后运行此宏:

Sub test()

For i = 1 To ThisWorkbook.Sheets("sheetname").Shapes.Count

    If ThisWorkbook.Sheets("sheetname").Shapes(i).Name Like "*Border" Then

        With ThisWorkbook.Sheets("Sheetname").Shapes(i).Line
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Transparency = 0
        End With
    End If

Next

End Sub

只需将宏录制器中的.somethingsomething更改为使用它录制的任何内容。如果您以后可能需要更粗的线条或其他东西,我的意思是。

将I=1的所有图片
循环到此工作簿.sheets(“sheetname”).Shapes.count
,然后为不需要边框的图片设置一些条件?我的意思是,弄清楚哪些图像不需要指定边界是一件非常具体的事情,所以我想你在这里必须要有创意。我可以看到一些选项,比如图片的特定名称。i、 e.
如果此工作簿.sheetname.Shapes(i).名称类似于“*border”,那么
或类似的名称。是否可以一次为所有图片添加_border后缀?在电话上,但是:您的意思是重命名所有图片?当然,只需在它们之间循环并添加一行,如:
ThisWorkbook.sheetname(“sheetname”).Shapes(i).Name=ThisWorkbook.sheetname(“sheetname”).Shapes(i).Name&“U Border”
如何在指定范围内完成,如上图所示?我想有一个在左边的大矩形边框的图像。我试着把这样的东西放在这个工作簿中:For I=1.Sheets(“Civils 1”).Range(“B2:L46”).Shapes.Count,现在我得到了:Object不支持这个方法这样做似乎不必要的复杂,只需手动重命名它们。如果出于某种原因,您需要对某个范围内的形状执行某些操作:我只是在谷歌上搜索了一下:“excel vba选择某个范围内的形状”,第一个结果就是您想要的。很抱歉,从您的
.range.shapes.count
代码片段来看,您需要的信息似乎比我在一个简单的评论中给出的要多。