Excel VBA第二次执行ActiveSheet.Paste仍粘贴首次HTML内容问题
VBA粘贴HTML渲染图表重复显示首个标的解决方案
问题根因
代码缺失HTML内容写入后同步到剪贴板的步骤,你更新A1单元格的HTML内容后,剪贴板仍然保存着第一次的ARS标的HTML数据,所以第二次粘贴始终输出相同的图表。
修正后代码
Sub Macro1() ' ' Macro1 Macro ' ' 插入第一张ARS标的图表 Range("A1").Formula = "<table cellspacing='1' cellpadding='0' bgcolor='#FFFFFF'><tr bgcolor='#FFFFFF'><td><br><br><table cellspacing='0' cellpadding='0'><tr><td><a href='/cmn/chrt/chrt_wrap.php?period=4&epic=ARS' target='window'><img border='0' src='http://uk.advfn.com/p.php?pid=staticchart&s=ARS&p=4&t=46' width='335' height='232' alt='6 Month chart.'></a></td></tr></table></td></tr></table>" Range("A1").Copy ' 新增:将最新HTML内容复制到剪贴板 Range("B2").PasteSpecial ' 直接粘贴无需提前选中单元格 Range("A1").Value = "" ' 插入第二张EML标的图表 Range("A1").Formula = "<table cellspacing='1' cellpadding='0' bgcolor='#FFFFFF'><tr bgcolor='#FFFFFF'><td><br><br><table cellspacing='0' cellpadding='0'><tr><td><a href='/cmn/chrt/chrt_wrap.php?period=4&epic=EML' target='window'><img border='0' src='http://uk.advfn.com/p.php?pid=staticchart&s=EML&p=4&t=46' width='335' height='232' alt='6 Month chart.'></a></td></tr></table></td></tr></table>" Range("A1").Copy ' 新增:同步更新剪贴板为第二份HTML内容 Range("H2").PasteSpecial Range("A1").Value = "" End Sub
优化说明
- 移除了冗余的单元格选中操作,直接通过单元格对象执行写入、复制、粘贴逻辑,运行效率更高
- 每次写入HTML后新增复制步骤,保证剪贴板内容和A1单元格内容同步,粘贴结果符合预期
- 保留原有清空A1单元格的逻辑,最终页面不会残留HTML代码
内容的提问来源于stack exchange,提问作者Nigel Flegg
相关产品推荐
相关产品推荐

