請各位大蝦改改吧


實時錯誤'1004'不能取得類chatTitle的characters

Private Sub Form_Load()
On Error Resume Next
Dim score As Integer

Dim xlApp As New Excel.Application  ''定義EXCEL類
Dim xlBook As Excel.Workbook ''定義工件簿類
Dim xlsheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\Gykh\桌面\bb.xls")
Set xlsheet = xlBook.Worksheets(1) ''打開EXCEL工作表
 xlBook.RunAutoMacros (xlAutoOpen)
 xlsheet.Activate

 Range("A2:D14").Select
 Charts.Add

ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlcolumsn
ActiveChart.SeriesCollection(1).Name = "sheet1!R1C2"
ActiveChart.SeriesCollection(2).Name = "sheet1!R1C3"
ActiveChart.SeriesCollection(3).Name = "sheet1!R1C4"
With ActiveChart
 
If .HasTitle = True _
And .ChartTitle.Characters.Text = "x和y的依賴關系" _
And .Axes(xlCategory, xlPrimary).HasTitle = True _
And .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x值" _
And .Axes(xlValue, xlPrimary).HasTitle = True _
And .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y值" Then
 ActiveChart.Location Where:=xlLocationAsObject, Name:="sheet1"
 

score = score + 1
Else
score = "0"

List1.AddItem sco
Form2.Show
End If
End With
xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlsheet = Nothing
End Sub
請各位大蝦幫忙改改吧.

18 个解决方案

#1


你先將下面的2句改一下再試:
List1.AddItem sco ===>List1.AddItem score

ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlcolumsn ===>
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlcolumns 

#2


它出現不能取類charttile的characters屬性的錯誤。
改了上面chinaOBS所提到的錯誤后還是會出現錯誤

#3


經改動后還是一樣的錯誤提示 Private Sub Form_Load()
On Error Resume Next
Dim score As Integer

Dim xlApp As New Excel.Application    ''定義EXCEL類
Dim xlBook As Excel.Workbook ''定義工件簿類
Dim xlsheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\Gykh\桌面\bb.xls")
Set xlsheet = xlBook.Worksheets(1) ''打開EXCEL工作表
 xlBook.RunAutoMacros (xlAutoOpen)
 xlsheet.Activate

 Range("A2:D14").Select
 Charts.Add

ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = "sheet1!R1C2"
ActiveChart.SeriesCollection(2).Name = "sheet1!R1C3"
ActiveChart.SeriesCollection(3).Name = "sheet1!R1C4"
ActiveChart.Location Where:=xlLocationAsObject, Name:="sheet1" '作為其中的對象插入
With ActiveChart
 
If .HasTitle = True _
And .ChartTitle.Characters.Text = "x和y的依賴關系" Then
   
score = score + 1

End If
If .Axes(xlCategory, xlPrimary).HasTitle = True _
And .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x值" Then
   score = score + 1
 
   End If
If .Axes(xlValue, xlPrimary).HasTitle = True _
And .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y值" Then
scor = score + 1
End If


List1.AddItem score
Form2.Show
End With

xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlsheet = Nothing
End Sub

#4


錯誤可能出自下面幾句,你可以自己調試一下... ...

ActiveChart.SeriesCollection(1).Name = "sheet1!R1C2"
ActiveChart.SeriesCollection(2).Name = "sheet1!R1C3"
ActiveChart.SeriesCollection(3).Name = "sheet1!R1C4"

#5


不是這幾個錯啊!

#6


首先要
.HasTitle = True 

然后才能判斷它的內容是什么

if  .ChartTitle.Characters.Text = "x和y的依賴關系" ........

#7


把你的bb.xls傳上來,俺看看

#8


If .HasTitle = True 
恐怕.HasTitle 的值是False 吧,那么ChartTitle 對象也不存在啊。

另外,既然你 On Error Resume Next 
為什么你的程序還報錯。

如果你的代碼報錯,恐怕也不是在這里才開始報錯吧。

#9


Private Sub Form_Load()
On Error Resume Next
Dim score As Integer

Dim xlApp As New Excel.Application    ''定義EXCEL類
Dim xlBook As Excel.Workbook ''定義工件簿類
Dim xlsheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\Gykh\桌面\bb.xls")
Set xlsheet = xlBook.Worksheets(1) ''打開EXCEL工作表
 xlBook.RunAutoMacros (xlAutoOpen)
 xlsheet.Activate

 Range("A2:D14").Select
 Charts.Add

ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject
With ActiveChart
.HasTitle = True
If .ChartTitle.Characters.Text = "x和y的依賴關系" Then
 score = score + 1
 End If
If .Axes(xlCategory, xlPrimary).HasTitle = False _
And .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x值" Then
score = score + 1
End If
If .Axes(xlValue, xlPrimary).HasTitle = False _
And .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y值" Then
score = score + 1
End If
End With

xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlsheet = Nothing
End Sub
我把它改成這樣,它出錯行是ActiveChart.Location Where:=xlLocationAsObject,出錯提示是無效的調用過程或參數

#10


Private Sub Form_Load()
On Error Resume Next
Dim score As Integer

Dim xlApp As New Excel.Application    ''定義EXCEL類
Dim xlBook As Excel.Workbook ''定義工件簿類
Dim xlsheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\Gykh\桌面\bb.xls")
Set xlsheet = xlBook.Worksheets(1) ''打開EXCEL工作表
 xlBook.RunAutoMacros (xlAutoOpen)
 xlsheet.Activate

 Range("A2:D14").Select
 Charts.Add

ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("A2:D14"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="sheet1"
With ActiveChart
.HasTitle = True
If .ChartTitle.Characters.Text = "x和y的依賴關系" Then
 score = score + 1
 End If
If .Axes(xlCategory, xlPrimary).HasTitle = True _
And .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x值" Then
score = score + 1
End If
If .Axes(xlValue, xlPrimary).HasTitle = True _
And .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y值" Then
score = score + 1
End If
End With

xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlsheet = Nothing
End Sub
我把它改成這樣,它出錯行是ActiveChart.Location Where:=xlLocationAsObject,出錯提示是無效的調用過程或參數

#11


.Axes(xlCategory, xlPrimary).HasTitle = True 即下面的那段代碼.當這語句是TRUE的時候它的錯誤是不能取得類AxisTitle的Characters屬性.

#12


我的問題解決了,在這里謝謝各位,稍后,如果運行沒問題的話就結貼,加分給大家!

#13


如果不打開文檔,運行沒錯,但是打開文檔后運行就出錯了。Range("A2:D14").Select 出錯了,對象'range'的方法'_GLobal'失敗。是怎么回事呢?

#14


改成這樣:
xlsheet.Range("A2:D14").Select 

#15


我在測試樓主的代碼時,Range("A2:D14").Select 這句就報錯了,所以我也奇怪樓主的錯誤怎么出現的那么后啊。
xlsheet.Activate 當你打開文件,卻又在另一個窗口處理這個文件,這句實際上是失敗的。
Range("A2:D14").Select 不加對象限制符,實際指activesheet,但是你並沒有activesheet啊。

#16


我是在一個窗口那里點擊打開文檔進行操作,然后在另一個窗口顯示出它是否操作對了.
那要怎樣來改呢?gracexu?

#17


嗯,獨孤丘雪不是給你答復了嗎。
xlsheet.Range("A2:D14").Select 
明確的給Range 屬性加上對象限制符,這樣可以避免activesheet的不確定性。

#18


On Error Resume Next 

是不能亂用的,使用這個語句的人最好看一下這個貼子。

Excel常用命令解析之001——On Error(將錯就錯)》

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com