2013-04-11 71 views
2

我有几个.xls文件,其工作表名称与其文件名相同。由于工作表名称是使用每个.xls文件更新的,因此我目前拥有的代码不会动态更新。动态更改工作表标题

是否有办法动态更新工作表名称,以便可以在所有.xls文件中使用代码?

Range("A3:E4500").Select 
Charts.Add 
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers 
ActiveChart.SetSourceData Source:=Sheets("named").Range("A3:E4500"), _ 
PlotBy:=xlColumns 

其中“named”将动态变化。我试着把这个添加到代码中,但是如果给出错误消息。 WBname为每个表格提供正确的名称,但“Source”不喜欢字符串。

Dim WBname As String 
WBname = Replace(ActiveWorkbook.Name, ".xls", "") 
Application.ScreenUpdating = False 
Range("A3:E4500").Select 
Charts.Add 
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers 
ActiveChart.SetSourceData Source:=Sheets("WBname").Range("A3:E4500"), _ 
PlotBy:=xlColumns 
+0

@Rafael我同意的改善(在标题中的特殊拼写),但随后也:[?我应该使用标题标签(http://meta.stackexchange.com/help/tagging)。 – pnuts 2015-09-24 05:36:48

回答

2

WBname是一个变量。在双引号内,它变成了一个字符串。

试试这个

变化

ActiveChart.SetSourceData Source:=Sheets("WBname").Range("A3:E4500"), _ PlotBy:=xlColumns

了这一点。

ActiveChart.SetSourceData Source:=Sheets(WBname).Range("A3:E4500"), _ PlotBy:=xlColumns

+0

哇,我不相信这是一个简单的变化。谢谢,它终于像我想要的那样工作。 – user2271563 2013-04-11 18:30:59