bazboy Пользователь Сообщений: 8 |
#1 27.08.2018 16:50:39 Добрый день, уважаемые форумчане! Прошу подсказать — написал такой макрос и привязал его к кнопке. При написании с отладкой проблем не было, режим был доступен. Просьба подсказать, в чем косяк.
Изменено: bazboy — 27.08.2018 20:53:39 |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14264 Профессиональная разработка приложений для MS Office |
#2 27.08.2018 16:57:14 Вы хоть напишите в какой строке возникает ошибка. И что значит:
как Вы его пытаетесь сделать? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
bazboy Пользователь Сообщений: 8 |
#3 27.08.2018 17:04:39
указатель в код и F8 |
||
Допустим. А ошибка-то в какой строке? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
bazboy Пользователь Сообщений: 8 |
в том-то и дело, что ничего не подсвечивает |
ivanok_v2 Пользователь Сообщений: 712 |
#6 27.08.2018 17:37:29
Видиш суслика? Нет. |
||
Alemox Пользователь Сообщений: 2183 |
#7 27.08.2018 18:50:53 Если у вас в модуле стоит
у вас переменная не найдена, а код дальше продолжает своё действие, и далее упирается опять в ошибку когда выполняет строку
потому что ColumnN=0 Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
||||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14264 Профессиональная разработка приложений для MS Office |
#8 27.08.2018 20:40:05
если почитать, то раньше как-то иначе отладку проводили, не по F8? В какой момент перестало работать?
переменная wrkBook будет Nothing и далее посыпят ошибки. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
bazboy Пользователь Сообщений: 8 |
#9 28.08.2018 16:05:40 Добрый день!
Именно))
Нет Option Explicit не стоял, спасибо — установил Require Variable Declaration в настройках.
Спасибо, поправил — теперь в случае невыполнения условия сразу к закрытию после сообщения.
так и проводил, после выходных перестало Дмитрий, понимаю, что с этого походу надо было начинать, но только сегодня осознал Изменено: bazboy — 28.08.2018 16:06:01 |
||||||||||
bazboy Пользователь Сообщений: 8 |
#10 28.08.2018 16:08:00
Проверил, нормально открываются — думаю, изначально были бы проблемы. Через кнопку макрос отрабатывает. |
||
Поместите код макроса из модуля листа в стандартный модуль. Тогда F8 будет работать. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
bazboy Пользователь Сообщений: 8 |
#12 28.08.2018 17:27:47 Дмитрий(The_Prist) Щербаков, оно! Спасибо! |
I’m new and trying to learn VBA. When I’m typing in the code I get Compile Error Expected Function Or Variable.
Is something regarding the activecell, but can’t figure it out.
Sub Testare()
Dim FilmName As String
Dim FilmLenght As Integer
Dim FilmDescription As String
Range("b10").Select
FilmName = ActiveCell.Value
FilmLenght = ActiveCell.Offset(0, 2).Value
If FilmLenght < 100 Then
FilmDescription = "Interesant"
Else
FilmDescription = "Suficient"
End If
MsgBox FilmName & " is " & FilmDescription
End Sub
Josh Crozier
231k56 gold badges389 silver badges303 bronze badges
asked Apr 24, 2014 at 16:41
3
This error happens also when a Sub is called the same as variable (i.e. in one Sub you have for loop with iterator «a», whilst another Sub is called «a»).
This gives an error that fits to your description.
Regards
answered Mar 10, 2015 at 17:22
Artur RutkowskiArtur Rutkowski
4474 gold badges9 silver badges17 bronze badges
It is possible to make your code fail in two different ways:
- Place a very large value in D10
- Place a text value in D10
This will result in either an overflow error or type mismatch error.
answered Apr 24, 2014 at 17:20
Gary’s StudentGary’s Student
95.4k9 gold badges58 silver badges99 bronze badges
I know this was asked a while ago, but I ended up with the same error when I created a Sub within a worksheet with the Sub Name the same as the Worksheet name.
Unfortunately when this happens, no error is highlighted by a compile; the error only appears at run time. Also, the offending line is not highlighted, which makes it a bit difficult to find.
Changing the Sub name solves it though.
Nippey
4,69835 silver badges44 bronze badges
answered Oct 23, 2014 at 11:47
Here is what caused this error in my case:
Inside a new Public Function that I was starting to write, I began to type a statement, but needed to copy a long varname from another location, so I just inserted the letter a
to prevent Excel from popping-up the uber-annoying Compile Error: Expected Expression
dialog. So I had this:
myVarName = a
I then attempted to step-through my code to get to that point, and when Excel entered that function I received the message "Compile Error: Expected Function Or Variable"
. To resolve, I just changed the placeholder to a number:
myVarName = 1
And all continued just fine.
answered Aug 7, 2018 at 16:22
cssyphuscssyphus
37.5k18 gold badges91 silver badges110 bronze badges
Permalink
Cannot retrieve contributors at this time
title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|
Expected Function or variable |
vblr6.chm1040076 |
vblr6.chm1040076 |
office |
c4f8e6fb-43b7-3dcd-c93a-7f9b2e542817 |
06/08/2017 |
medium |
The syntax of your statement indicates a variable or function call. This error has the following cause and solution:
-
The name isn’t that of a known variable or Function procedure.
Check the spelling of the name. Make sure that any variable or function with that name is visible in the portion of the program from which you are referencing it. For example, if a function is defined as Private or a variable isn’t defined as Public, it’s only visible within its own module.
-
You are trying to inappropriately assign a value to a procedure name.
For example if
MySub
is a Sub procedure, the following code generates this error:MySub = 237 ' Causes Expected Function or variable error
Although you can use assignment syntax with a Property Let procedure or with a Function that returns an object or a Variant containing an object, you can’t use assignment syntax with a Sub, Property Get, or Property Set procedure.
For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
[!includeSupport and feedback]
I’m new and trying to learn VBA. When I’m typing in the code I get Compile Error Expected Function Or Variable.
Is something regarding the activecell, but can’t figure it out.
Sub Testare()
Dim FilmName As String
Dim FilmLenght As Integer
Dim FilmDescription As String
Range("b10").Select
FilmName = ActiveCell.Value
FilmLenght = ActiveCell.Offset(0, 2).Value
If FilmLenght < 100 Then
FilmDescription = "Interesant"
Else
FilmDescription = "Suficient"
End If
MsgBox FilmName & " is " & FilmDescription
End Sub
Josh Crozier
228k54 gold badges386 silver badges301 bronze badges
asked Apr 24, 2014 at 16:41
3
This error happens also when a Sub is called the same as variable (i.e. in one Sub you have for loop with iterator «a», whilst another Sub is called «a»).
This gives an error that fits to your description.
Regards
answered Mar 10, 2015 at 17:22
Artur RutkowskiArtur Rutkowski
4274 gold badges9 silver badges16 bronze badges
It is possible to make your code fail in two different ways:
- Place a very large value in D10
- Place a text value in D10
This will result in either an overflow error or type mismatch error.
answered Apr 24, 2014 at 17:20
Gary’s StudentGary’s Student
94.9k9 gold badges58 silver badges97 bronze badges
I know this was asked a while ago, but I ended up with the same error when I created a Sub within a worksheet with the Sub Name the same as the Worksheet name.
Unfortunately when this happens, no error is highlighted by a compile; the error only appears at run time. Also, the offending line is not highlighted, which makes it a bit difficult to find.
Changing the Sub name solves it though.
Nippey
4,64835 silver badges44 bronze badges
answered Oct 23, 2014 at 11:47
Here is what caused this error in my case:
Inside a new Public Function that I was starting to write, I began to type a statement, but needed to copy a long varname from another location, so I just inserted the letter a
to prevent Excel from popping-up the uber-annoying Compile Error: Expected Expression
dialog. So I had this:
myVarName = a
I then attempted to step-through my code to get to that point, and when Excel entered that function I received the message "Compile Error: Expected Function Or Variable"
. To resolve, I just changed the placeholder to a number:
myVarName = 1
And all continued just fine.
answered Aug 7, 2018 at 16:22
cssyphuscssyphus
36.6k18 gold badges93 silver badges108 bronze badges
bazboy Пользователь Сообщений: 8 |
#1 27.08.2018 16:50:39 Добрый день, уважаемые форумчане! Прошу подсказать — написал такой макрос и привязал его к кнопке. При написании с отладкой проблем не было, режим был доступен. Просьба подсказать, в чем косяк.
Изменено: bazboy — 27.08.2018 20:53:39 |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 13958 Профессиональная разработка приложений для MS Office |
#2 27.08.2018 16:57:14 Вы хоть напишите в какой строке возникает ошибка. И что значит:
как Вы его пытаетесь сделать? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
bazboy Пользователь Сообщений: 8 |
#3 27.08.2018 17:04:39
указатель в код и F8 |
||
Допустим. А ошибка-то в какой строке? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
bazboy Пользователь Сообщений: 8 |
в том-то и дело, что ничего не подсвечивает |
ivanok_v2 Пользователь Сообщений: 712 |
#6 27.08.2018 17:37:29
Видиш суслика? Нет. |
||
Alemox Пользователь Сообщений: 2183 |
#7 27.08.2018 18:50:53 Если у вас в модуле стоит
у вас переменная не найдена, а код дальше продолжает своё действие, и далее упирается опять в ошибку когда выполняет строку
потому что ColumnN=0 Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
||||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 13958 Профессиональная разработка приложений для MS Office |
#8 27.08.2018 20:40:05
если почитать, то раньше как-то иначе отладку проводили, не по F8? В какой момент перестало работать?
переменная wrkBook будет Nothing и далее посыпят ошибки. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
bazboy Пользователь Сообщений: 8 |
#9 28.08.2018 16:05:40 Добрый день!
Именно))
Нет Option Explicit не стоял, спасибо — установил Require Variable Declaration в настройках.
Спасибо, поправил — теперь в случае невыполнения условия сразу к закрытию после сообщения.
так и проводил, после выходных перестало Дмитрий, понимаю, что с этого походу надо было начинать, но только сегодня осознал Изменено: bazboy — 28.08.2018 16:06:01 |
||||||||||
bazboy Пользователь Сообщений: 8 |
#10 28.08.2018 16:08:00
Проверил, нормально открываются — думаю, изначально были бы проблемы. Через кнопку макрос отрабатывает. |
||
Поместите код макроса из модуля листа в стандартный модуль. Тогда F8 будет работать. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
bazboy Пользователь Сообщений: 8 |
#12 28.08.2018 17:27:47 Дмитрий(The_Prist) Щербаков, оно! Спасибо! |
|
|
- Remove From My Forums
-
Question
-
I’m getting this odd error in my code. its probably obvious but i’ve been staring at it for so long i’ve got code blindness ! i’ve highlighted the error line in red below.
error is : expected function or variable
the msdn definition is here :http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaaccrf_0bla.asp
Public Function WinEventFunc(ByVal HookHandle As Long, ByVal LEvent As Long, ByVal HWnd As Long, ByVal idObject As Long, ByVal idChild As Long, ByVal idEventThread As Long, ByVal dwmsEventTime As Long) As Long
Dim ObA As IAccessible
Dim LRet As Long
Dim V As Variant
Dim s As String, s1 As String, sName As String
On Error Resume Next
Dim pxLeft As Long, pyTop As Long, pcxWidth As Long, pcyHeight As LongpxLeft = 0
pyTop = 0
pcxWidth = 0
pcyHeight = 0‘Select Case LEvent
‘Case SYS_FOREGROUND, SYS_ALERT, OB_FOCUS, OB_SELECTION, OB_VALUECHANGE
LRet = AccessibleObjectFromEvent(HWnd, idObject, idChild, ObA, V)
If LRet = 0 Then
With F1
sName = ObA.accName(V)
.Text1(0).Text = sName .Text1(1).Text = ObA.accDescription(V)
s1 = ObA.accValue(V)
.Text1(2).Text = s1
.Text1(3).Text = ObA.accRole(V)
.Text1(4).Text = ObA.accState(V)RECT = ObA.accLocation(pxleft, pytop, pcxwidth, pcyheight, V)
End WithIf (ObA.accState(V) And STATE_UNAVAILABLE) Then
s = » disabled»
End IfIf LEvent = OB_VALUECHANGE Then
s = s1 & s
Else
s = sName & sEnd If
End If
WinEventFunc = 0
End Function
Answers
-
You have this at the bottom:
End Function
End Sub
is that a typo?
-
If the problem is on the line you’ve highlighted, then i would make sure that the ObA object has a function called accLocation()
Also, where is RECT being defined? I don’t see it in this function.
RECT is also commonly used as a object name. You may want to consider calling it something else.