excel - 根据单元格值为工作表中的多个形状着色
问题描述
所以我正在尝试编写一个代码来根据单元格值更改多个形状的颜色。
我使用了一种简单的方法,如果我运行代码并且形状名称与单元格中写入的名称匹配,则它会突出显示,否则它会变灰。我有按国家/地区命名的形状名称(基本上形状名称为“中国”、“德国”、“英国”等);我正在使用的代码如下:
Sub Box_Colour()
Dim Shape_Name As String
Shape_Name = ActiveSheet.Range("N8").Value
ActiveSheets.Shapes(Shape_Name).Fill.ForeColor.RGB = RGB(237, 125, 49)
ActiveSheets.Shapes(Shape_Name).Fill.ForeColor.RGB = RGB(166, 166, 166)
End Sub
但是我收到错误为“需要对象”;你能帮我解决这个问题吗?
PS - 目前我正在逐张执行此操作,但是有什么方法可以一次为所有工作表运行此代码?就像每张纸上的形状名称一样;所以N8的值是德国表中的“德国”,中国表中的“中国”。也让我知道 :) 在此先感谢!
解决方案
循环工作表和每个工作表的Shapes
集合:
Sub Box_Colour()
Dim ws As Worksheet, shp As Shape, nm As String
For Each ws In ThisWorkbook.Worksheets
nm = ws.Range("N8").Value
For Each shp In ws.Shapes
shp.Fill.ForeColor.RGB = _
IIf(shp.Name = nm, RGB(237, 125, 49), RGB(166, 166, 166))
Next shp
Next ws
End Sub
推荐阅读
- java - Kill blocked thread
- android - Imageview not updating bitmap, android?
- asp.net-core - Asp.Net Core with legacy assembly runtime error
- c# - Autofac's Contextual binding not working in ASP.Core 2.0
- javascript - 复制 HTML div 的值
- javascript - React after login load another file and close the current file
- r - R Shiny partial styling of validation message
- python - Subprocess in tkinter, running .exe file
- python - 在 Postgresql 的 WHERE 中使用 JSON 数组进行查询
- json - Azure cosmos db 与用于中间/临时存储的 blob 存储