Vbscript 使用同一工作表的宏在打开的excel中创建图表或图形

Vbscript 使用同一工作表的宏在打开的excel中创建图表或图形,vbscript,Vbscript,在VBScript中,如何在打开的Excel工作表中创建图形?我在宏中编写的代码是: Set objWriteExcel = CreateObject("Excel.Application") objWriteExcel.Visible = False Set objWriteWorkbook = objWriteExcel.Workbooks.Open("E:\Surendra\VBCode\Graph\newSheet.xls") Set objWriteSheet = objWriteWo

在VBScript中,如何在打开的Excel工作表中创建图形?我在宏中编写的代码是:

Set objWriteExcel = CreateObject("Excel.Application")
objWriteExcel.Visible = False
Set objWriteWorkbook = objWriteExcel.Workbooks.Open("E:\Surendra\VBCode\Graph\newSheet.xls")
Set objWriteSheet = objWriteWorkbook.Worksheets(1)
Set objWriteSheet2 = objWriteWorkbook.Worksheets(2)   
Set oMychart = objWriteSheet.ChartObjects.Add(50, 50, 1000, 500).Chart   
oMychart.ChartType = 73
oMychart.SetSourceData objWriteSheet2.Range("A2:B2001")   
oMychart.ChartTitle.Text = "Acclaration VS Time"
objWriteWorkbook.SaveAs ("E:\Surendra\VBCode\Graph\newSheet.xls"), -4143
objWriteExcel.Quit
这里是
newsheet.xls
当我在某个单元格上创建时,它应该从同一工作簿的sheet2中获取数据并创建一个图表。但是,如果我的工作表已经打开,并且如果我使用
工作簿.open
命令,我就不会得到图表。如果没有这个对象,我认为脚本将无法工作

如果我以VBScript文件的形式运行此宏,则它工作正常,但如果a将相同的代码添加到工作表中作为宏并运行,则它不工作


有人能帮助我如何在同一张打开的表格中绘制图表。

我不知道如何对一次单击事件做出反应。但是,您可以对
SelectionChange
事件做出反应:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  'do stuff
End Sub
请注意,只有在选择与以前不同的单元格时,单击当前选定的单元格时,才会触发此宏

此外,宏必须绑定到工作表。打开宏编辑器,并双击project explorer窗口中的“Sheet1”。在“新代码”窗口中输入代码。有关更详细的说明,请参阅


将图形创建记录为宏,并将其粘贴到
工作表\u selection change
过程中。

我不清楚您的实际问题是什么。您是否在询问如何将VBScript代码转换为VBA?实际问题是,当我单击sheet1的一个单元格时,宏应通过从同一excel工作表的sheet2中获取值,在sheet1中绘制图形。因为vbscript使用的对象不是activesheet方法。我尝试为打开的工作表创建对象并执行它。但是我不能得到图表,我还是不明白。是否要在工作表中选择现有图表,以便修改?可以这样实现:
Set=objWriteSheet.ChartObjects(1).Chart
。我想通过单击excel工作表的sheet1中的单元格来执行宏。复制程序:1。打开一个Excel工作表2。在同一张表3的表2中写入一些数据。为单元格分配宏单击4。一旦单击单元格,宏将执行VBScript代码,执行以下步骤:5。宏功能应该是,它必须从sameexcel的SHEET2获取数据,并在同一excel的sheet1中创建图形。我需要VBScript代码,该代码通过从同一excel的Sheet2获取数据,在excel的sheet1中绘制图形。谢谢你的耐心。我能理解你吗?这和VBScript无关。您应该更改标记,因为它会误导其他用户。我找到了为单元格选择指定宏的方法。但唯一的问题是,当我试图源数据时,我得到了对象要求的错误。在excel中记录宏时,从excel生成的代码是VBA代码。但我需要同样的VBScript代码。因为VBScript无法理解Activechart和ActiveSheet。如何将下面的VBA代码转换为VBScript代码。子宏1()ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType=xlXYScatterSmoothNoMarkers ActiveChart.SetSourceData:=工作表(“Sheet2”)。范围(“A2:B20”)结束Sub@surendra那没有任何意义。事件触发的代码是宏。为什么在运行宏时需要VBScript代码?