Ash —
In your code, try adding series data and category labels prior to assigning the axis scales.
I can successfully run this code on a chart so long as there is at least 1 series, and the category axis labels are in date format.
I have uploaded a workbook to Google Docs which has the chart already created. Delete the chart, but leave the series data in columns B&C, then run the macro AshOriginalWithAddSeries
. All I have done really is to add one series of data with date-formatted XValues
, and then your code works.
https://docs.google.com/file/d/0B1v0s8ldwHRYUWUtRWpqblgzM3M/edit?usp=sharing
Sub AshOriginalWithAddSeries()
Dim cht As Chart
Dim srs As Series
Dim dummyDate As Date
Set cht = ActiveSheet.ChartObjects.Add(Left:=202, Width:=340, Top:=28, Height:=182).Chart
dummyDate = DateSerial(2013, 2, 1)
' remove extra series
With cht
Do Until .SeriesCollection.Count = 0
.SeriesCollection(1).Delete
Loop
'Add at least one series:
Set srs = .SeriesCollection.NewSeries
With srs
.Name = "Series Title"
.Values = 0.5 '=Working!$C$3:$C$14" ' or you can pass an array of stored values
.XValues = Array(dummyDate) '"=Working!$B$3:$B$14" 'or you can pass an array of values, make sure they are valid DATES though
End With
.ChartType = xlLineMarkers
.HasTitle = True
.ChartTitle.Text = "Performance Trends"
.ChartTitle.Font.Size = 12
.ChartTitle.Font.Name = "Calibri"
.ChartTitle.Font.FontStyle = "Bold"
With .Axes(xlCategory)
.CategoryType = xlTimeScale
'.BaseUnit = xlMonths
.MajorUnit = 2
.TickLabels.NumberFormat = "mmm yy"
.TickLabels.Orientation = 45
'.MajorUnitScale = xlMonths ' run-time error occurs here
.MinorUnit = 1
'.MinorUnitScale = xlMonths
End With
End With
'Now assign some real values to srs
With srs
.Name = "Series Title"
.Values = "=Working!$C$3:$C$14" ' or you can pass an array of stored values
.XValues = "=Working!$B$3:$B$14" 'or you can pass an array of values, make sure they are valid DATES though
End With
End Sub
I think your code is failing because there is no series data, and consequently no category values. It is peculiar because some properties of the axis can be set even when the axis doesn’t exist. I have noticed similar behavior elsehwere in chart automation — sometimes it won’t let you access the properties unless there is series data.
- Remove From My Forums
-
Вопрос
-
While running a VBA Macro to paste Graphs into PPT; I am getting the following error.
================================================================
Microsoft Visual Basic
Run-time error’-2147467259(80004005):
Presentation (unknown member): The Path or filename for c:tempfilename.ppt is invalid. Please check that the path and file name are correct.================================================================
However; this macro was running earlier without any errors and suddenly showing this error. The same macro is still running without any errors in other computers. Please help me find a solution to this problem.
Thanks,
Arul
Ответы
-
Hi Arul,
According to the error message, the file you operate is invalid. I suggest you check the c:tempfilename.ppt
to see whether it exists or is corruped. If the file can be opened successfully, wolud you mind sharing the the code snippet with us to troubleshoot this issue?Best regards
Fei
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.-
Помечено в качестве ответа
7 февраля 2014 г. 9:29
-
Помечено в качестве ответа
Странное выполнение кода |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Всем добрый вечер!! в строке кода: появляется ошибка: помогите пожалуйста — как ее избежать? причем — если pdf уже существует (то есть, если сохранение идет поверх существующего), то вроде ошибка не выскакивает. подскажите пожалуйста команду создания пустого pdf файла-заглушки. (не сохранять или печатать в pdf, а именно просто создать. что-нибудь типа FSO.Makefile («C:111.pdf») |
|
Юрий М Модератор Сообщений: 60574 Контакты см. в профиле |
Для начала попробуйте в диспетчере задач посмотреть — есть ли там среди открытых документов Ваши. И закройте там же само приложение. |
процесса WINWORD.EXE нету даже если есть куча процессов WINWORD.EXE — перезапись(!) файла делается отлично, при условии, если файл pdf уже существует. таким образом, ошибка появляется только при создании нового файла. вот и хочу перед выполнением функции создавать макросом пустой файл-заглушку, чтобы он в любом случае перезаписывался и не было ошибок |
|
вставила перед выполнением функции: |
|
Hugo Пользователь Сообщений: 23250 |
Бывает, что в корень C запрещает писать система или антивирус. |
а вот еще нашла решение: http://tiny.cc/u28bdw по первичным тестам ошибка тоже не выскакивает вместо: заменить на: |
|
точнее так: |
|
_Лена_ Гость |
#8 26.04.2012 00:57:19 а нет ну буду значит через пустой файл-заглушку делать (msg 26.04.2012, 00:13) |
Написал я тут на VB6 небольшую прогу: подключается к SQL Server 2000 через ADO, вводятся данные, сохраняются и распечатываются. Операционки — у меня Win2K, у пользователей WinNT 4(кажется). Пару недель она работала как у меня, так и у пользователей. Вчера же у пользователей с каких то фигов при запуске выдала следующее:
Run-time error -2147467259(80004005) [DBNMPNTW] ConnectionOpe(CreateFile())
После сообщения есессно ничего не загрузилось…
Самое интересное что у меня то всё работает… у моей учётной записи прав конечно побольше чем у простых юзеров нашей сети… но ведь две недели до этого всё работало… админ пока молчит, вроде бы ничего не менял… в чём проблема? как её решить? спасибо…
5 ответов
258
16 января 2005 года
SergeySV
1.5K / / 19.03.2003
Как ты сам понимаешь, указать конкретную причину по таким симптомам врядли кто-нибудь возьмется, … обычно в таких случаях советуют воспользовать утилитой — Profiler (так помойму пишется), можно очень подробно посмотреть все что приходит/уходи на сервак MS SQL, проанализировать, обычно все становится ясно — но это конечно, если проблема на стадии связи с серваком происходит…. но раз у всех ползователей сразу, то врядли это конечно локальные проблемы
10
16 января 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by SergeySV
но раз у всех ползователей сразу, то врядли это конечно локальные проблемы
Хм, а может оказаться банально — IP сервака назначается по DHCP, и он поменялся. А у тебя, например, он прописан по имени, а не по IP…
Ну, или срок какой-нить политики или сертификата истек…
Когда подобная ерунда происходит, обычно с проверок ерунды и начинают.
411
17 января 2005 года
Serzh
136 / / 09.07.2003
Цитата:
Originally posted by smartsoft
Хм, а может оказаться банально — IP сервака назначается по DHCP, и он поменялся. А у тебя, например, он прописан по имени, а не по IP…
Ну, или срок какой-нить политики или сертификата истек…
Когда подобная ерунда происходит, обычно с проверок ерунды и начинают.
Подобная ошибка бывает и при работе на чистом VBA.
На мой взгляд сущность ошибки в переполнении некой переменной типа DWORD. Обычно это возникает
в случаях некорректной работы со стеком, например
при рекурсивных вызовах процедур. И дело тут не
в сроке нахождения задачи у пользователя, а в том
насколько активно он с ней работает…
17K
16 марта 2006 года
fbrym
1 / / 16.03.2006
Написал я тут на VB6 небольшую прогу: подключается к SQL Server 2000 через ADO, вводятся данные, сохраняются и распечатываются. Операционки — у меня Win2K, у пользователей WinNT 4(кажется). Пару недель она работала как у меня, так и у пользователей. Вчера же у пользователей с каких то фигов при запуске выдала следующее:
Run-time error -2147467259(80004005) [DBNMPNTW] ConnectionOpe(CreateFile())
Автор отзовитесь, как решили проблему? Или кто нибудь подскажите. У меня проблемы такие: в экселе VB-скрипт подключается к MSSQL и все время работало, вдруг сейчас стало выдавать такую ошибку
Run-time error -2147467259(80004005) [DBNMPNTW]
Не может найти SQL-сервер
2.0K
16 марта 2006 года
MNikolay
16 / / 20.12.2002
Цитата:
Originally posted by fbrym
Написал я тут на VB6 небольшую прогу: подключается к SQL Server 2000 через ADO, вводятся данные, сохраняются и распечатываются. Операционки — у меня Win2K, у пользователей WinNT 4(кажется). Пару недель она работала как у меня, так и у пользователей. Вчера же у пользователей с каких то фигов при запуске выдала следующее:
Run-time error -2147467259(80004005) [DBNMPNTW] ConnectionOpe(CreateFile())
Автор отзовитесь, как решили проблему? Или кто нибудь подскажите. У меня проблемы такие: в экселе VB-скрипт подключается к MSSQL и все время работало, вдруг сейчас стало выдавать такую ошибку
Run-time error -2147467259(80004005) [DBNMPNTW]
Не может найти SQL-сервер
К сожалению давно это было и я уже не могу сказать точоно как решилась проблема (блин, надо было сюда же сразу написать…. в дальнейшем так и буду делать….) ….
Поэтому….
1. попробуй посмотреть msdn:
http://search.microsoft.com/results.aspx?q=2147467259%2880004005%29+%5BDBNMPNTW%5D&l=3&mkt=ru-RU&FORM=QBME3
возможно что-нибудь да найдёшь….
2. всётаки я могу примерно попытаться вспомнить список решений проблем с подключением к MS SQL, c которыми столкнулся при разработке той программы… Совершенно точно помню что системный админ долго мне ездил по ушам что у пользователей достаточно прав для подключения к SQL, в результате выяснилось что это правдв но только частично: на MS SQL в параметрах авторизации (серыер и Windows/только Windows) была указаны только Windows Authentication — меняли на SQL b Windows….
Так же, из 1 пункта, по ссылке, можно найти , кажется 2-ая по счёту, статейку об открытие и закрытие Recordset’ов… кажись всё-таки была и такая штука у меня — ещё не закрыт какой-то Recordset, а уже пытаюсь открыть новый…. (http://support.microsoft.com/default.aspx?scid=kb;en-us;180843).
Вообщем попробуй, помотри. Если есть желание — покажи код до момента появления ошибки.
Выяснишь в чём проблема — не поленись, отпиши сюда. Не повторяй чужих глупостей