Why does using [#Name] in Excel VBA string cause error 1004? - excel

When I try to execute this statement using Excel VBA, it gives an error 1004:
Cells(C, 2).Value = "=IFERROR(XLOOKUP([#Name],Master_List_1[Name],Master_List_1[Email]),""error"")"
If I remove the brackets around #Name, it works fine. The other brackets in the string don't cause trouble. Somehow VBA is parsing the text string and objecting to having [#Name] in there.
If I put the statement in a cell by hand (with single quotes), it works as it should. (I did forget the = sign; that's been corrected.

Related

Excel VBA FormatConditions drops invalid procedure call or argument on the client

We have an excel, which contains some VBA code. For a table we write some VBA code to set up some preparation like these:
Worksheets("Activity Features").range("ActivityFeaturesTable[ProtonProject]").Formula = "=VLOOKUP([Proton],Table_PT2_Projects,2,FALSE)"
Worksheets("Activity Features").range("ActivityFeaturesTable[SUM]").Formula = "=SUM(ActivityFeaturesTable[#[C0001]:[C0500]])*#IF([#Multiplier]="""",1,[Multiplier])"
With Worksheets("Activity Features").range("ActivityFeaturesTable[StartDate]")
.FormatConditions.Add Type:=xlExpression, Formula1:="=IF(INDIRECT(""RC[-1]"",0) = ""From StartDate to EndDate"", FALSE, TRUE)"
End With
This *.FormatConditions.Add Type:=xlExpression .. * line drops Invalid procedure call or argument error, however lines before this executes without any error.
The error occurs only on one client laptop, we cannot reproduce, several other users never experienced this error before. We checked the client computer settings, the Regional settings "List separator" was set to ";" instead of "," - but changing back to "," does not helped at all. And VBA code lines before this one also contains "," as separator in the formula.
We wonder why this error happens on the client side on this line?! Any idea? Is there any problem with the INDIRECT or RC in the formula?
Thanks in advance!

Excel-VBA "type mismatch" error when using Format() to convert Date to String

I am working on code that runs within a userform in Excel 2013. It is supposed to convert dates to string values to pass into text boxes within the form.
I have done this before and have never had any trouble with it. I am now getting a Runtime Error 13 "type mismatch" whenever I attempt to execute the following code:
Me.ListingDate.Value = Format(Now(), "mm/dd/yyyy")
The objective of this line is to format today's date and pass it to the textbox. I tried breaking it down into individual steps:
Dim MyDate As Date
Dim MyString As String
MyDate = Now()
MyString = Format(MyDate, "mm/dd/yy")
Me.ListingDate.Value = MyString
This still triggers a type mismatch error in the line where the Format() function is invoked on a date value.
I have run this code for over a year and never had any problems. There are several other forms in the file that use a similar syntax and it works.
Is it possible for a userform to become corrupted and falsely generate a runtime error? What other factors may be causing the error?

Cannot use "from" in .numberformat vba

Hi I have 2 cells where user is entering values, placed next to each other like:
200 1200
Using .numberformat i want to change it to
From 200 To 1200
I can use any other word but "from" is giving me an Run-time error 1004
Code I wanted to use:
Range("B42:B44").NumberFormat = ("From" & "##0.0\°F")
Range("C42:C44").NumberFormat = ("To " & "##0.0\°F")
Any ideas how can I bypass this?
Test in a number format should be enclosed in quotes:
Range("B42:B44").NumberFormat = """From""##0.0""°F"""
or you can escape each character with \ as you did with the degree symbol, but that gets tedious!
This isn't a VBA problem. If you right click the cell and goto format/custom and type From ##0.0\°F you get an error. But regardless, you can fix it either manually or in VBA by escaping out the problem characters:
Range("B42:B44").NumberFormat = ("F\ro\m ##0.0°F")

Vietnamese Unicode characters string error (showing "?")

I am using Excel VBA, I have an error when I assign Vietnamese-Unicode character values in variable or MsgBox, like this:
Range("A1").Value = "Nguyễn Văn Bình"
MsgBox(Sheet5.Range("a453").Value
It results with: Nguy?n V?n B?nh
Is there a way to work around this?

Excel error: expected end of statement, what does this mean?

I am trying to write this formula into a cell via my script:
strFormulas(1) = "=IF(AND(I2<12.2,I2>=8.2),"t","f")"
And it keeps coming up as an error, even though it works just fine in the actual sheet if I manually input it into the cell. What is it expecting me to do here?
You need to escape quotes. Try this:
strFormulas(1) = "=IF(AND(I2<12.2,I2>=8.2),""t"",""f"")"
The issue that you are running into is that " is interpreted as beginning or ending a VBA string. So VBA parses your expression as
strFormulas(1) = "=IF(AND(I2<12.2,I2>=8.2),"
with "garbage" at the end. This "garbage" is what it is complaining about. If you need to include a " within a VBA string, use "".

Resources