我有一个简单的宏,可以从Excel复制一个单元格区域。该区域包含一个简单的 Jmeter 板,其中包含文本和填充颜色的条件格式单元格。然后,用户将复制的内容作为图像手动粘贴到PowerPoint幻灯片中。此过程重复几次,显示不同的 Jmeter 板输出。使用宏复制所需的选择后,需要手动执行粘贴操作。
该过程运行良好,但我们需要在所需的Excel范围内添加一些说明,旁边是一个下拉框,告诉用户在该单元格中进行选择。我们不希望最终的图像复制/粘贴到PowerPoint文件中显示该指令。
在复制代码之前,我添加了代码来将说明文本的字体颜色更改为白色,以便它在白色背景中消失,然后添加了代码来在宏中执行复制代码后将字体颜色更改回灰色。当宏执行后手动粘贴图像时,它显示灰色可见文本,而不是白色。如果我注解掉将字体颜色更改回灰色的代码,然后得到的图像不显示图像中的指导文本,因为字体是白色的...但文本需要更改回灰色,所以它再次可见。* 我觉得这是奇怪的剪贴板内容时,文本是白色的复制,更改的基础上作出的选择后,执行复制代码。*
以下是我的代码。请忽略已注解掉的Application.CopyObjectsWithCells行。它们只是为了显示我尝试使用替代解决方案。我尝试添加一个带有说明文本的形状以使用“Application.CopyObjectsWithCells=False”,因此形状不会复制,但它不起作用。将该属性重置为True时,剪贴板内容将被清除。即使我不将其设置为True,形状被复制/粘贴到最终的图像中。我想坚持改变文本字体颜色的初始方法。如果不能做到这一点,那么也许可以通过将范围保存在变量中。我如何声明一个复制Excel范围的变量,可以手动粘贴为图像?
Sub Copy_DirDash()
Set wsDashboard = ThisWorkbook.Sheets("Director Dashboard")
'change font color of "<< make selection text" to white then copy
wsDashboard.Range("h3").Font.Color = vbWhite
DoEvents
' This was attempt at alternate solution. Please ignore. Currently no shapes.
' Application.CopyObjectsWithCells = False
' DoEvents
wsDashboard.Range("A1").Select
wsDashboard.Range("D2:AC26").Copy
DoEvents
'change font color back to grey
wsDashboard.Range("h3").Font.Color = RGB(89, 89, 89) 'dark grey
' This was part of alternate solution. Ignore.
'Application.CopyObjectsWithCells = True
End Sub
1条答案
按热度按时间t3psigkw1#
Tim威廉姆斯发布回复只是因为他在评论中给出了回复,所以没有复选标记将问题标记为已解决。
也许可以试试wsdashboard.Range(“D2:AC 26”).CopyPicture代替?- Tim威廉姆斯