Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
jomikk
Helper I
Helper I

Help translating VBA to Power Query

Hi, I want to create a dynamic query in Power BI. But I need to change my VBA in query to Power Query such that I can use it with a parameter

 

My original MDX query contains this piece of VBA:

 

Str(Int(CDbl(Now()) - 38718))

It takes todays date and time, converts it to a number, subtracts a value needed to get right row from cube, converts it to a whole number (integer) and then finally changes it to a string so that it can be used in the query.

 

I have tried to do the following in Power Query, without luck.

 

Value = Text.From(Int64.From(Number.From(DateTime.LocalNow()) - 38718))
1 ACCEPTED SOLUTION
jomikk
Helper I
Helper I

Figured out what I did wrong!

 

I used Power Query formula inside StrToMember (which expects VBA formulaes):

 

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")

So I changed this to:

 

[Report Date].[Report Date].&["& Value &"]

And then my original Value formula worked as I expected.

 

Value = Text.From(Int64.From(Number.From(DateTime.LocalNow()) - 38718))

But I don't know if this is the "best" way to do it, but it works

View solution in original post

3 REPLIES 3
jomikk
Helper I
Helper I

Figured out what I did wrong!

 

I used Power Query formula inside StrToMember (which expects VBA formulaes):

 

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")

So I changed this to:

 

[Report Date].[Report Date].&["& Value &"]

And then my original Value formula worked as I expected.

 

Value = Text.From(Int64.From(Number.From(DateTime.LocalNow()) - 38718))

But I don't know if this is the "best" way to do it, but it works

You want something like this

 

Duration.Days(DateTime.Date(DateTime.LocalNow())-#date(2015,1,1))



* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.

Cheers Matt, can you explain what this is doing? Keep in mind that I want a number, not a date.

 

Here is the cube member for context:

 

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")

So using this VBA code for today it would yield:

 

[Report Date].[Report Date].&[3502]

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.