При написании кода пишет ошибку: expected line number or label or statement or end of statement
В этой программе полный ноль, не могу понять что не так.
Option Explicit
Sub PRIM4_1()
‘Объявление переменных I,J,K целого типа
Dim I As Integer, J As Integer, K As Integer
‘Объявление переменных MIN, MAX и массива A(1 To 10) вещественного типа
Dim A(1 To 10) As Single, MIN As Single, MAX As Single
‘Объявление переменной S строкового типа
Dim S As String
‘Задание начального значения
S = «»
‘Начало цикла, где I-параметр цикла
For I = 1 To 10
‘Заполнение элементов массива — A(I) случайными величинами
A(I) = (Rnd * 10 + I)
‘Суммирование элементов массива в строку для вывода в окно
S = S + «» + Str(Format(A(I), «FIXED»))
‘Продолжение цикла
Next I
‘Вывод значений элементов массива в диалоговое окно
MsgBox «Вывод элементов массива», vbInformation, «S=» & S
‘Задание начальных значений переменных MIN и MAX
MAX = A(1): K = 1
MIN = A(1): J = 1
‘Начало цикла
For I = 2 To 10
‘Поиск MIN путём сравнения MIN с последующими элементами
If A(I) < MIN Then MIN = A(I): J = I
‘Поиск Max путём сравнения Max с последующими элементами
If A(I) > MAX Then MAX = A(I): K = I
‘Продолжения цикла
Next I
‘Вывод результата вычислений
MsgBox «Индексы мин. и макс. элементов» & (Chr(10) & Chr(13)),_
&»j=»&J&»»&»k=»&K, vbInformation,_
«MIN=»&Str(Format(MIN,»fixed»))&»»&»MAX=»&Str(Format(MAX,»fixed»))
‘Конец кода программы
End Sub
-
#2
I am getting the error:
Expected: Line Number or Label or Statement or End of Statement
I am using Excel 2007 and here is the code:
Code:
Sub GuessMyName() Msg = "Is your Name" & Application.UserName & "?" Ans = MsgBox(Msg, vbYesNo) If Ans= vbNo Then [B][COLOR=#b22222]"Oh Never Mind"[/COLOR][/B] If Ans= vbYes Then [B][COLOR=#b22222]"I am pretty Smart!"[/COLOR][/B] End Sub
This code came from Chapter one of book so I had hoped not to hit a roadblock so soon! Maybe I picked the wrong book! Any help would be appreciated. I have turned off requiring that variables be initiated. I normally wouldn’t do that but this is a pretty simple test (at least I thought so). Thanks so much.
The two text strings I highlighted in red cannot just stand alone like that… something has to be done with them (such as assign it to a variable or display it somewhere). My guess is you missed putting in the MsgBox function call so that the text strings would be displayed somewhere…
Code:
Sub GuessMyName()
Msg = "Is your Name" & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
If Ans= vbNo Then [B][COLOR=#b22222]MsgBox [/COLOR][/B][COLOR=#000000]"Oh Never Mind"[/COLOR]
If Ans= vbYes Then [B][COLOR=#b22222]MsgBox[/COLOR][/B] [COLOR=#000000]"I am pretty Smart!"[/COLOR]
End Sub
I want to use Excel VBA to set up Task Reminders in Outlook, so I found this code from here:
http://www.jpsoftwaretech.com/using-excel-vba-to-set-up-task-reminders-in-outlook/
Dim bWeStartedOutlook As Boolean
Function AddToTasks(strDate As String, strText As String, DaysOut As Integer) As Boolean
=AddToTasks(B2, M2 Time, 120)
' Adds a task reminder to Outlook Tasks a specific number of days before the date specified
' Returns TRUE if successful
' Will not trigger OMG because no protected properties are accessed
' by Jimmy Pena, http://www.jpsoftwaretech.com, 10/30/2008
'
' Usage:
' =AddToTasks("12/31/2008", "Something to remember", 30)
' or:
' =AddToTasks(A1, A2, A3)
' where A1 contains valid date, A2 contains task information, A3 contains number of days before A1 date to trigger task reminder
'
' can also be used in VBA :
'If AddToTasks("12/31/2008", "Christmas shopping", 30) Then
' MsgBox "ok!"
'End If
Dim intDaysBack As Integer
Dim dteDate As Date
Dim olApp As Object ' Outlook.Application
Dim objTask As Object ' Outlook.TaskItem
' make sure all fields were filled in
If (Not IsDate(strDate)) Or (strText = "") Or (DaysOut <= 0) Then
AddToTasks = False
GoTo ExitProc
End If
' We want the task reminder a certain number of days BEFORE the due date
' ex: if DaysOut = 120, then we want the due date to be -120 before the date specified
' we need to pass -120 to the NextBusinessDay function, so to go from 120 to -120,
' we subtract double the number (240) from the number provided (120).
' 120 - (120 * 2); 120 - 240 = -120
intDaysBack = DaysOut - (DaysOut * 2)
dteDate = NextBusinessDay(CDate(strDate), intDaysBack)
On Error Resume Next
Set olApp = GetOutlookApp
On Error GoTo 0
If Not olApp Is Nothing Then
Set objTask = olApp.CreateItem(3) ' task item
With objTask
.StartDate = dteDate
.Subject = strText & ", due on: " & strDate
.ReminderSet = True
.Save
End With
Else
AddToTasks = False
GoTo ExitProc
End If
' if we got this far, it must have worked
AddToTasks = True
ExitProc:
If bWeStartedOutlook Then
olApp.Quit
End If
Set olApp = Nothing
Set objTask = Nothing
End Function
Function GetOutlookApp() As Object
On Error Resume Next
Set GetOutlookApp = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
Set GetOutlookApp = CreateObject("Outlook.Application")
bWeStartedOutlook = True
End If
On Error GoTo 0
End Function
Sub Test()
My question is, if I have all the data in the spreadsheet, and I initiallize AddToTasks like so:
=AddToTasks(A1, A2, 120)
Why does it come up with that error?
Berserker_ua 0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
||||
1 |
||||
Синтаксическая ошибка26.05.2013, 21:17. Показов 8783. Ответов 17 Метки нет (Все метки)
Вформе есть 2 списка (Список8 и Список12). в Списке8 в соответствии с запросом выводит данные поля таблицы (STAT, KODDIAN, KODDIAZ). При двойном клике по Спискок8 в Списке12 должно открытся данные с табллицы MSXK но в строках & «WHERE STAT = » & Forms!Form5!STAT _
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
26.05.2013, 21:17 |
17 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
26.05.2013, 21:42 |
2 |
в строках 31, 32 нужны пробелы, иначе запрос сливается в одну строку & «WHERE STAT = » & Forms!Form5!STAT _
0 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
26.05.2013, 21:54 [ТС] |
3 |
mcherry, Можно подрбднее? Если вы имеете в виду после » то всё равно не работает.
0 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
26.05.2013, 21:56 |
4 |
в этой же строке ошибка? когда у меня подобное возникает я в любую свободную ячейку на листе екселя вывожу получившийся запрос (перед его выполнением) и смотрю что там не так, попробуйте и Вы вывести, может где-то еще что-то пропущено….
0 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
26.05.2013, 22:12 [ТС] |
5 |
я в Access’е пишу, пробовал удалить одну или пару строк всё равно одна и так ошибка Добавлено через 3 минуты
0 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
26.05.2013, 22:18 |
6 |
тоже синтаксическую ошибку выдает? попробуйте текст запроса выдать в меседж-боксе…
0 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
26.05.2013, 22:33 [ТС] |
7 |
Не сильно понимаю как это можно осуществить.
0 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
26.05.2013, 22:39 |
8 |
MsgBox strSQL и будет видно где ошибка в синтаксисе запроса
0 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
26.05.2013, 22:55 [ТС] |
9 |
Вы имеете в виду записать:
0 |
mcherry 81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
||||
26.05.2013, 23:00 |
10 |
|||
нет,
+ не забываем пробелы после » на новой строке с частью запроса
0 |
Berserker_ua 0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
||||
26.05.2013, 23:29 [ТС] |
11 |
|||
Измененная строка
и всё равно таже ошибка Добавлено через 2 минуты
0 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
26.05.2013, 23:45 |
12 |
Проверьте возвращают ли нужные значения Forms!Form5!STAT и Список8.Column(2), пустое сообщение не должно выводиться, т.к. «MsgBox strSQL» выводит содержимое переменной — в данном случае текст запроса
1 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
27.05.2013, 00:02 [ТС] |
13 |
Благодарю Вас за помощь, надеюсь исправлю как-то это. Если у Вас будет желание не могли б просмотреть этот процесс(Form5)
0 |
mcherry 81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
||||
27.05.2013, 00:18 |
14 |
|||
так работает:
в строке был лишний пробел после AND KODDIAZ = ‘ и получалось что запрос выбирает не KODDIAZ=’F051′, а KODDIAZ=’ F051′ и перед формированием строки запроса MsgBox не нужен…
1 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
27.05.2013, 00:26 |
15 |
вот, поправила:
0 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
27.05.2013, 00:36 [ТС] |
16 |
Спасибо огромное, но теперь как изменить чтобы в одном из столбцов вторго списка выводилось текст с переменной MSXK.NDIA, просто задача была такая чтобы с первого списка выбрать код диагноза и после двойного нажати во втором выводилась информация про диагноз? Добавлено через 9 минут
0 |
81 / 24 / 2 Регистрация: 18.01.2013 Сообщений: 74 |
|
27.05.2013, 00:36 |
17 |
открыть форму в режиме конструктора, открыть свойства списка 12 (через контекстное меню) и поменять свойство «число столбцов» с 2 на 3.
1 |
0 / 0 / 0 Регистрация: 22.05.2013 Сообщений: 17 |
|
27.05.2013, 00:45 [ТС] |
18 |
да, уведел уже, просто забыл про это) Добавлено через 8 минут
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.05.2013, 00:45 |
Помогаю со студенческими работами здесь Ошибка TNS-01150: Указан неверный адрес имени прослушивателя NL-00303: синтаксическая ошибка в NV-строке Ошибка разбора: синтаксическая ошибка, неожиданный ‘а’ (T_WHILE) в C:OSPaneldomainsTest.ruindex.php на линии 15 $connection = mysqli_connect(‘127.0.0.1′,’mysql’,’mysql’,’test_db’); if ( $connection… Ошибка анализа: синтаксическая ошибка, неожиданная «ModelBlogArticle» (T_STRING) в /home/u1607/uggitut.ru/www/admin/mode вот выдает ошибку: Parse error: syntax error,… Ошибка при вызове метода/Синтаксическая ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 18 |
VBA- Compile Error, Expected: line number or label or statement or end of statement
Hi- this is my first time posting in the forum as I am a newer VBA user. I hope you can help.
ActiveCell.FormulaR1C1 = _
«»
I am trying to paste the formulas below into the «» above and am getting an error. It says Compile Error, Expected: line number or label or statement or end of statement. I suspect that this error might be coming up because I have too many functions in one cell. The formula below works in excel do you know why it doesn’t work in VBA? Is there a better way to do this? I think this might be a beginner error.=IF(OR(RC[-5]=»Default to MIP pricing»,RC[-5]=»Not Traded»),»Not Traded»,IF(RC[2]=»IG»,IF(AND(OR(RC[-5]=»Priced to Maturity»,RC[-5]=»Priced to Call»),RC[-21]<>R1C3),»TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01)&» / «&MROUND(RC[-15],1)&»bps adjusted to «&MROUND(RC[-9],1)&»bps based on «&IF(AND(RC[-12]<>»»,ABS(RC[-12])<0.1),»CDS change of «&MROUND(ABS(RC[-12]*100),0.01)*SIGN(RC[-12])&»%»,»LUCI change of «&MROUND(ABS(RC[-11]*100),0.01)*SIGN(RC[-11])&»%»),IF(AND(OR(RC[-5]=»Using Trade PX»,RC[-21]=R1C3),ISERROR(«TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01)&» / «&MROUND(RC[-15],1)&»bps»)),»TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01),»TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01)&» / «&MROUND(RC[-15],1)&»bps»)),IF(RC[-21]>R5C3,»TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01),»TRACE >$1mm traded on «&TEXT(RC[-21],»mm/dd/yyyy»)&» at «&MROUND(RC[-20],0.01)&» adjusted by HY index change of «&MROUND(ABS(RC[-11]*100),0.01)*SIGN(RC[-11])&»%»)))
Hopefully you can help!
- Remove From My Forums
Access 2013 -VBA Function — Error — Expected Line number or statement at end of statement
-
Question
-
Hi all, I am getting the error that is in the thread title and cannot work out what the issue is.
I am just re-entering the world of vba after about 10 years of absence so this may be an obvious fix I am overlooking.
I am writing a custom function for an Access database. I am using Access 2013 on a windows 7 64 bit OS.
here is the function code in its entirety
Public Function Q308A_Agg_Calc(M1 As Double, M2 As Double, B As Double, M As Double) ma = ((M2 - M1) * (100 - B)) / 100 Q308A_Agg_Calc = 100 - ((100 * M) / ma) End Function
When I run it in the immediate window I get the error message
compile Error:
Expected: Line number or statement at end of statement
What am I doing wrong?
Thankyou
kezzla
Answers
-
You didn’t declare the variable ma. But this should result in another error not the one you mention. Maybe your statement in the immediate window was not correct. You have to proceed it with a ?, for example:
? Q308A_Agg_Calc(10, 5, 1, 1)
To declare the variable add following line to your code:
Dim ma As Double
The code then should look like this:
Public Function Q308A_Agg_Calc(M1 As Double, M2 As Double, B As Double, M As Double) Dim ma As Double ma = ((M2 - M1) * (100 - B)) / 100 Q308A_Agg_Calc = 100 - ((100 * M) / ma) End Function
Also ensure you have the
Option Explicit
in the header of your module.
If this doesn’t solve your error then it is originated from somewhere else not from this function. In this case try Menu Debug — Complile to find where the error is generated. It looks for me more like a Compiler error with a statement somewhere else that
is generated by the Just-In-Time Compiler. In this case the line drawing the error should be marked in the VBA editor.Henry
-
Marked as answer by
Wednesday, February 6, 2013 5:17 AM
-
Marked as answer by
-
- #1
Hi,
I am trying to pass the column value of cells with values not equal to zero to variables F1, F2, F3 , F4, F5 & F6. The code is as under;Dim i, F1, F2, F3, F4, F5, F6 As Integer Set TsRng = Range("E3:J3") i = 1 For Each Ts In TsRng If Ts.Value <> 0 Then "F" & i = Ts.Column i = i + 1 End If Next
I get a compile error message for the line «F» & i = Ts.column. Not sure what I am doing wrong here. Please help.
Thanks in advance. -
- #2
Re: Compile Error: Expected: line number or label or statement or end of statement
Is it really necessary to put the values into the variables
you can try putiing the values into a variant on a temp basis unntil you get an answer for this which will be easier if you r stuck and want to procede further with your development -
- #3
Re: Compile Error: Expected: line number or label or statement or end of statement
Hi ashu1990,
Thanks for your response.
Could you please elaborate on how to put the values into a variant? Sorry if I sound ignorant.
Cheers,
-
- #4
Re: Compile Error: Expected: line number or label or statement or end of statement
You could use an array:
Dim i As Integer, F(1 To 6) As Integer Set TsRng = Range("E3:J3") i = 1 For Each Ts In TsRng If Ts.Value <> 0 Then F(i) = Ts.Column i = i + 1 End If Next
-
- #5
Re: Compile Error: Expected: line number or label or statement or end of statement
Hi rory,
Thanks, that works!!! Much appreciated. :rock:Cheers,
-
- #6
I get same error while using the following code: Anyone to assist? Thanks in advance
Sub CopyFile() Dim SourceFile As String Dim DestFile As String SourceFile=“C:Usersk.kamranDesktopFile1.xlsx” DestFile = “C:Usersk.kamranDesktopNewFile.xlsx” FileCopy SourceFile, DestFile End Sub
Display More
-
- #7
Your code works fine here once I replace the smart quotes around your file paths with regular quotes.
-
- #8
kamran1015
Welcome to the Forum
Please start your own post. Posting in another member’s Thread is known as hijacking and is not allowed here. By all means add a link to a Thread that may be related to your question.
-
- #9
kamran1015
Welcome to the Forum. Please read the Forum Rules to understand how the Forum works and why I have added Code Tags to your post
All VBA code posted in the forum must be wrapped in code tags, which you omitted, including single-line code snippets.Be sure to use them in future posts.
How to use code tags
Just highlight all of the code and press the <> in the post menu above button to add the code tags.
Thanks.
I suggest you read the Forum Rules before posting again.
-
12-06-2015, 04:29 PM
#1
Compile Error: Expected: line number or label or statement ….
I am trying to write a function in MS Office Excel. I continue to get the following error message when I test the function:
Compile error: Expected: line number or label or state or end of statement.
I reduced the function code down to the bare minimum, but keep getting the error.
Here is the function code:
Function z() As Variant
Debug.Print 123
z = 99
End FunctionI am testing the function in the immediate window within Excel VBA with the following line:
=z()
I would expect to see 123 displayed following the call to the function, instead I am getting the error message above. Any ideas? Could there be a permissions / setup problem?
Thanks!
PS using MS Office Standard 2013
Last edited by forrest; 12-06-2015 at 04:35 PM.
Reason: added version of MS Office
-
12-06-2015, 05:12 PM
#2
Found the problem …. It was the way I was testing the function in the immediate window.
The proper way to test a function from the immediate window is with a question mark (?) and not an equal sign (=)
?z()
-
12-06-2015, 10:47 PM
#3
I expect the student to do their homework and find all the errrors I leeve in.