Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
dselgo_eidex
Partner - Creator III
Partner - Creator III

Macro to create string from selected field values

Hello, I'm trying to make a search string to store into a variable for later use via a macro. I already have an action on a button that is doing this, but I'm trying to make a macro to do this instead (the reason is that I want a number of variables to be set according to which button was pushed, and I think it will be easier to maintain in a macro rather than in 10+ Set Variable actions). Currently my Select in Field action is doing this:

='("' & concat({state1}DISTINCT ENTITY_NAME, '"|"') & '")'

I'm trying to get a macro to form the same string value (i.e. ("A"|"B")). Currently I have this in my macro:

Set fieldSelections = ActiveDocument.Fields("ENTITY_NAME", "state1").GetSelectedValues()

Set concatString = "(""" & Join(fieldSelections, """|""") & """)"

but I am receiving an error on the second line. From what I've read, the Join function in VBScript is meant to take an array and delimiter and return a string value (VBScript Join Function). However, the GetSelectedValues() method returns an object of the IArrayOfFieldValue class, which I assume works like an array. Is there any way that I can concatenate the values returned by GetSelectedValues()?

1 Solution

Accepted Solutions
dselgo_eidex
Partner - Creator III
Partner - Creator III
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"

View solution in original post

1 Reply
dselgo_eidex
Partner - Creator III
Partner - Creator III
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"