<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Find and Open Excel File in Folder in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225581#M36116</link>
    <description>&lt;P&gt;I'm curious if anyone knows a method to open an excel document from a partial string in a given directory?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example say you have all of your project folders on a drive, inside your project folders you have project documents, and you're specifically looking for Project File - (JobNumber) where JobNumber is simply the job number (except it varies from job to job, of course).&amp;nbsp; If you didn't know the job number but knew the "Project File" keyword do not change, any idea how you would open it?&lt;/P&gt;</description>
    <pubDate>Thu, 09 Jun 2022 19:27:26 GMT</pubDate>
    <dc:creator>eric.frissell26WKQ</dc:creator>
    <dc:date>2022-06-09T19:27:26Z</dc:date>
    <item>
      <title>Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225581#M36116</link>
      <description>&lt;P&gt;I'm curious if anyone knows a method to open an excel document from a partial string in a given directory?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example say you have all of your project folders on a drive, inside your project folders you have project documents, and you're specifically looking for Project File - (JobNumber) where JobNumber is simply the job number (except it varies from job to job, of course).&amp;nbsp; If you didn't know the job number but knew the "Project File" keyword do not change, any idea how you would open it?&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jun 2022 19:27:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225581#M36116</guid>
      <dc:creator>eric.frissell26WKQ</dc:creator>
      <dc:date>2022-06-09T19:27:26Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225678#M36117</link>
      <description>&lt;P&gt;Do you have a sample file path string that shows the project file and job number?&amp;nbsp; Also indicate if the location will always be different. If the excel document is relative to an assembly/part file then that can be used as a location marker.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jun 2022 20:30:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225678#M36117</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2022-06-09T20:30:28Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225781#M36118</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9392282"&gt;@eric.frissell26WKQ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an example that might work for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope this helps.&lt;BR /&gt;Best of luck to you in all of your Inventor pursuits,&lt;BR /&gt;Curtis&lt;BR /&gt;&lt;A href="http://inventortrenches.blogspot.com" target="_blank" rel="noopener"&gt;http://inventortrenches.blogspot.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"123"&lt;/SPAN&gt;
	&lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;(&lt;SPAN&gt;"C:\Temp\"&lt;/SPAN&gt;, &lt;SPAN&gt;oWord&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;( &lt;SPAN&gt;oFolder&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oSearchWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;() = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;GetDirectories&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;() = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;GetFiles&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt;,&lt;SPAN&gt;"*.xls"&lt;/SPAN&gt;)

	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 0 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt;.&lt;SPAN&gt;Length&lt;/SPAN&gt; - 1
		&lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;(&lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;), &lt;SPAN&gt;oSearchWord&lt;/SPAN&gt;)
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
	
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 0 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;.&lt;SPAN&gt;Length&lt;/SPAN&gt; - 1
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;().&lt;SPAN&gt;Contains&lt;/SPAN&gt;(&lt;SPAN&gt;oSearchWord&lt;/SPAN&gt;.&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;()) &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Launch&lt;/SPAN&gt;(&lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;))
		&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jun 2022 21:28:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11225781#M36118</guid>
      <dc:creator>Curtis_W</dc:creator>
      <dc:date>2022-06-09T21:28:27Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227071#M36119</link>
      <description>&lt;P&gt;This is a shorter version mentioned by&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/105031"&gt;@Curtis_W&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim topDirectory = "C:\Temp"
Dim searchPattern = "Project File - (*).*"

Dim files = System.IO.Directory.EnumerateFiles(topDirectory, searchPattern, System.IO.SearchOption.AllDirectories)
For Each file In files
	Logger.Debug(File)
Next&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2022 12:33:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227071#M36119</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2022-06-10T12:33:03Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227315#M36120</link>
      <description>&lt;P&gt;Thanks guys!&amp;nbsp; Really appreciating the help!&amp;nbsp; Granted I was hoping I wouldn't have to do this but... tried both methods and struggling to get either to work.&amp;nbsp; Perhaps you guys might be able to see if I made an error in implementing your methods so here's the code in it's entirety so far.&lt;BR /&gt;&lt;BR /&gt;Currently intent is to;&lt;/P&gt;&lt;P&gt;set a path to the project folder (DocPath) as a parameter so that it can be called at a later date, and do the same to the engineering path which is what holds the engineering documents.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have this iLogic rule find the document containing the word Sizing, open it (silent, not silent - both are okay), and adjust some values based on what's contained in the file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Currently the parameters are being set however using either of the two methods are not returning anything - the SearchThroughFolders isn't opening the file and using the directory nothing is printing to the logger&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Were these set up right?&amp;nbsp; Been going through and trying a few different ways of getting them to work but haven't been able to return anything&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;

&lt;SPAN&gt;On&lt;/SPAN&gt; &lt;SPAN&gt;Error&lt;/SPAN&gt; &lt;SPAN&gt;Resume&lt;/SPAN&gt; &lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;"ProjectFolder"&lt;/SPAN&gt;)

&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;""&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Search&lt;/SPAN&gt;(&lt;SPAN&gt;DocPath&lt;/SPAN&gt;)
	&lt;SPAN&gt;'DocParam = InputBox("Set Project Folder Directory.  If there are sub-directories prior to project information then use sub directory")&lt;/SPAN&gt;
	&lt;SPAN&gt;'AddPathParam = ParamSet.AddByValue("ProjectFolder", DocParam, UnitsTypeEnum.kTextUnits)&lt;/SPAN&gt;
&lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;topDirectory&lt;/SPAN&gt; = &lt;SPAN&gt;DocPath&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;searchPattern&lt;/SPAN&gt; = &lt;SPAN&gt;"*Sizing*"&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;files&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;EnumerateFiles&lt;/SPAN&gt;(&lt;SPAN&gt;topDirectory&lt;/SPAN&gt;, &lt;SPAN&gt;searchPattern&lt;/SPAN&gt;, &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;SearchOption&lt;/SPAN&gt;.&lt;SPAN&gt;AllDirectories&lt;/SPAN&gt;)
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;file&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;files&lt;/SPAN&gt;
	&lt;SPAN&gt;Logger&lt;/SPAN&gt;.&lt;SPAN&gt;Debug&lt;/SPAN&gt;(&lt;SPAN&gt;File&lt;/SPAN&gt;)
&lt;SPAN&gt;Next&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;	

' Set document paths and create parameters
&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Search&lt;/SPAN&gt;(&lt;SPAN&gt;DocPath&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;' Create param&lt;/SPAN&gt;
	&lt;SPAN&gt;ParamSet&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
	&lt;SPAN&gt;DocParam&lt;/SPAN&gt; = &lt;SPAN&gt;InputBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Set Project Folder Directory"&lt;/SPAN&gt;)
	&lt;SPAN&gt;AddPathParam&lt;/SPAN&gt; = &lt;SPAN&gt;ParamSet&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"ProjectFolder"&lt;/SPAN&gt;, &lt;SPAN&gt;DocParam&lt;/SPAN&gt;, &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kTextUnits&lt;/SPAN&gt;)
	&lt;SPAN&gt;' Set Path&lt;/SPAN&gt;
	&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;"ProjectFolder"&lt;/SPAN&gt;)
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;DocPath&lt;/SPAN&gt;, 0) &amp;lt;&amp;gt; &lt;SPAN&gt;"\"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
		&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"\"&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	
	&lt;SPAN&gt;' Create engineering path&lt;/SPAN&gt;
	&lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt; = &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"Engineering\"&lt;/SPAN&gt;
		&lt;SPAN&gt;'MsgBox(EngineeringPath)&lt;/SPAN&gt;
	&lt;SPAN&gt;AddPathParam&lt;/SPAN&gt; = &lt;SPAN&gt;ParamSet&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"EngineeringPath"&lt;/SPAN&gt;, &lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt;, &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kTextUnits&lt;/SPAN&gt;)
		
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"Sizing"&lt;/SPAN&gt;
	&lt;SPAN&gt;'Search2(EngineeringPath, oWord)&lt;/SPAN&gt;
	&lt;SPAN&gt;'SearchThroughFolders(EngineeringPath, oWord)&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;'&lt;/SPAN&gt;
&lt;SPAN&gt;' Find the files&lt;/SPAN&gt;

&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;( &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;() = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;GetDirectories&lt;/SPAN&gt;(&lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;() = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;GetFiles&lt;/SPAN&gt;(&lt;SPAN&gt;DocPath&lt;/SPAN&gt;, &lt;SPAN&gt;"*.xlsx"&lt;/SPAN&gt;)
	

	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 0 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt;.&lt;SPAN&gt;Length&lt;/SPAN&gt; - 1
		&lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;(&lt;SPAN&gt;oSubDirectories&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;), &lt;SPAN&gt;oWord&lt;/SPAN&gt;)
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
	
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 0 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;.&lt;SPAN&gt;Length&lt;/SPAN&gt; - 1
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;().&lt;SPAN&gt;Contains&lt;/SPAN&gt;(&lt;SPAN&gt;oWord&lt;/SPAN&gt;.&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;()) &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Launch&lt;/SPAN&gt;(&lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;))
		&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Search2&lt;/SPAN&gt;(&lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;topDirectory&lt;/SPAN&gt; = &lt;SPAN&gt;EngineeringPath&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;searchPattern&lt;/SPAN&gt; = &lt;SPAN&gt;"*"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oWord&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"*.*"&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;files&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;EnumerateFiles&lt;/SPAN&gt;(&lt;SPAN&gt;topDirectory&lt;/SPAN&gt;, &lt;SPAN&gt;searchPattern&lt;/SPAN&gt;, &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;SearchOption&lt;/SPAN&gt;.&lt;SPAN&gt;AllDirectories&lt;/SPAN&gt;)
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;file&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;files&lt;/SPAN&gt;
	&lt;SPAN&gt;Logger&lt;/SPAN&gt;.&lt;SPAN&gt;Debug&lt;/SPAN&gt;(&lt;SPAN&gt;File&lt;/SPAN&gt;)
&lt;SPAN&gt;Next&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2022 14:06:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227315#M36120</guid>
      <dc:creator>eric.frissell26WKQ</dc:creator>
      <dc:date>2022-06-10T14:06:12Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227348#M36121</link>
      <description>&lt;P&gt;I look at your code later, but first thing.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEVER&lt;/STRONG&gt; use &lt;EM&gt;&lt;STRONG&gt;On Error Resume Next&lt;/STRONG&gt;&lt;/EM&gt; in iLogic rules. This is an obsolete method for error handling. Use Try-Catch blocks instead.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2022 14:15:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11227348#M36121</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2022-06-10T14:15:22Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11231668#M36122</link>
      <description>&lt;P&gt;Just circling back to this in case anyone can see the error in the code above&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try -catch block seems like a difficult way of implementing the on error resume next.&amp;nbsp; Mind if I ask why try-catch is better?&amp;nbsp; Was using On Error to get through the initial object variable not being set and tried to switch it to try-catch but it kept failing, though I'll admit that may be the first try-catch I tried to implement.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;"ProjectFolder"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;P&gt;Would it be appropriate to do something like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;DocPath = Parameter("ProjectFolder")
If Err then GoTo ... &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jun 2022 13:57:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11231668#M36122</guid>
      <dc:creator>eric.frissell26WKQ</dc:creator>
      <dc:date>2022-06-13T13:57:14Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11231783#M36123</link>
      <description>&lt;P&gt;Unstructured error handling &lt;A href="https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/on-error-statement#remarks" target="_blank" rel="noopener"&gt;is not recommended by Microsoft&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;How to implement Try-Catch-Finally block is described &lt;A href="https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Usually you don't want to continue, when some unexpected exception occurs. You need to fix them first and then you can continue. Otherwise you can get unexpected behavior of your code.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jun 2022 14:37:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11231783#M36123</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2022-06-13T14:37:12Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11232658#M36124</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9392282"&gt;@eric.frissell26WKQ&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As currently written you only enter the sub called "Search" if DocPath is nothing. So if DocPath is not nothing, it never steps into that sub, and therefore never searches for the file or opens it is found.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That might be the intent, but I wanted to point that out in case it was not.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In any case, here is an example that should be closer to what you are wanting.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope this helps.&lt;BR /&gt;Best of luck to you in all of your Inventor pursuits,&lt;BR /&gt;Curtis&lt;BR /&gt;&lt;A href="http://inventortrenches.blogspot.com" target="_blank" rel="noopener"&gt;http://inventortrenches.blogspot.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;

	&lt;SPAN&gt;' get or create param	&lt;/SPAN&gt;
	&lt;SPAN&gt;oParamName&lt;/SPAN&gt; = &lt;SPAN&gt;"ProjectFolder"&lt;/SPAN&gt;
	&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)

	&lt;SPAN&gt;'get user input&lt;/SPAN&gt;
	&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;InputBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Set Project Folder Directory"&lt;/SPAN&gt;, &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;, &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;))
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;""&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Return&lt;/SPAN&gt;
		
	&lt;SPAN&gt;'set param value&lt;/SPAN&gt;
	&lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;) = &lt;SPAN&gt;DocPath&lt;/SPAN&gt;

	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;DocPath&lt;/SPAN&gt;, 0) &amp;lt;&amp;gt; &lt;SPAN&gt;"\"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
		&lt;SPAN&gt;DocPath&lt;/SPAN&gt; = &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"\"&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

	&lt;SPAN&gt;' get or create param	&lt;/SPAN&gt;
	&lt;SPAN&gt;oParamName&lt;/SPAN&gt; = &lt;SPAN&gt;"EngineeringPath"&lt;/SPAN&gt;
	&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)

	&lt;SPAN&gt;'set param value&lt;/SPAN&gt;
	&lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;) = &lt;SPAN&gt;DocPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"Engineering\"&lt;/SPAN&gt;

	&lt;SPAN&gt;oFile&lt;/SPAN&gt; = &lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;(&lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;), &lt;SPAN&gt;"Sizing"&lt;/SPAN&gt;)
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFile&lt;/SPAN&gt; = &lt;SPAN&gt;""&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; : &lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"No file found."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;) : &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt; : &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

	&lt;SPAN&gt;Try&lt;/SPAN&gt; : &lt;SPAN&gt;GoExcel&lt;/SPAN&gt;.&lt;SPAN&gt;Open&lt;/SPAN&gt;(&lt;SPAN&gt;oFile&lt;/SPAN&gt;, &lt;SPAN&gt;"Sheet1"&lt;/SPAN&gt;) : _
	&lt;SPAN&gt;Catch&lt;/SPAN&gt; : &lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"could not open Excel file."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;) : &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt; : &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
	
	&lt;SPAN&gt;oCellValue&lt;/SPAN&gt; = &lt;SPAN&gt;GoExcel&lt;/SPAN&gt;.&lt;SPAN&gt;CellValue&lt;/SPAN&gt;(&lt;SPAN&gt;"A1"&lt;/SPAN&gt;)
	&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Cell value is: "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oCellValue&lt;/SPAN&gt;,, &lt;SPAN&gt;oFile&lt;/SPAN&gt;)

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;


&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oName&lt;/SPAN&gt;)

	&lt;SPAN&gt;ParamSet&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
	&lt;SPAN&gt;Try&lt;/SPAN&gt;
		&lt;SPAN&gt;'get param value&lt;/SPAN&gt;
		&lt;SPAN&gt;oTest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oName&lt;/SPAN&gt;)
	&lt;SPAN&gt;Catch&lt;/SPAN&gt;
		&lt;SPAN&gt;'create if not found&lt;/SPAN&gt;
		&lt;SPAN&gt;ParamSet&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;oName&lt;/SPAN&gt;, &lt;SPAN&gt;""&lt;/SPAN&gt;, &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kTextUnits&lt;/SPAN&gt;)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
	&lt;SPAN&gt;InventorVb&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentUpdate&lt;/SPAN&gt;()
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;

&lt;SPAN&gt;' Find the files&lt;/SPAN&gt;
&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;SearchThroughFolders&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oWord&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;() = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;GetFiles&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt;, &lt;SPAN&gt;"*.xlsx"&lt;/SPAN&gt;)

	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 0 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;.&lt;SPAN&gt;Length&lt;/SPAN&gt; - 1
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;().&lt;SPAN&gt;Contains&lt;/SPAN&gt;(&lt;SPAN&gt;oWord&lt;/SPAN&gt;.&lt;SPAN&gt;ToUpper&lt;/SPAN&gt;()) &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;oFiles&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;)
		&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jun 2022 21:42:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11232658#M36124</guid>
      <dc:creator>Curtis_W</dc:creator>
      <dc:date>2022-06-13T21:42:03Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240055#M36125</link>
      <description>&lt;P&gt;Thanks Curtis!&amp;nbsp; You're right about the file search function - I would like to run the file location function once and have it store the values, then be able to run the entire sub again and and have it update so it wouldn't have done that the way it was written.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'll be trying this soon and thanks a ton for writing this out, gonna have a lot to learn from it.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2022 16:47:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240055#M36125</guid>
      <dc:creator>eric.frissell26WKQ</dc:creator>
      <dc:date>2022-06-16T16:47:43Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240471#M36126</link>
      <description>&lt;P&gt;While I've got you here, hopefully you wouldn't mind a quick question?&amp;nbsp; I'm not very familiar with try catch methods and I'm trying to understand some behavior...&amp;nbsp; Your code worked however the I made a few edits in the first few lines and was trying to get the code to skip the inputbox if it found the parameter.&amp;nbsp; The On Error Resume Next I thought was a really simple way to get through this however I understand that it's not the greatest way to handle errors.&amp;nbsp; If that was converted to a try catch method I'd think it'd look somewhat similar to the code below, except it's not running that way&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is the right way to think about a try-catch method like;&lt;/P&gt;&lt;P&gt;Do X&amp;nbsp; &amp;lt;- the try&lt;/P&gt;&lt;P&gt;If you can do X go on&lt;BR /&gt;If you can't do X then do Y &amp;lt;- the catch&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Sub Main()
	
	Dim DocPath As String
	
	' Check for parameter
	Try : DocPath = Parameter(ProjectFolder)
		If DocPath &amp;lt;&amp;gt; ""
			MsgBox(DocPath)
		End If
	Catch : ' didn't find parameter - go to create parameter
		oParamName = "ProjectFolder"
		Call CheckOrCreateParam(oParamName) : End Try

	' Get user input for parameter
	DocPath = InputBox("Set Project Folder Directory.  Leave blank to exit", "iLogic", Parameter(oParamName))
	If DocPath = "" Then Exit Sub
	' Set param value
	Parameter(oParamName) = DocPath

	If Right(DocPath, 0) &amp;lt;&amp;gt; "\" Then
		DocPath = DocPath &amp;amp; "\"
	End If&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2022 20:16:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240471#M36126</guid>
      <dc:creator>eric.frissell26WKQ</dc:creator>
      <dc:date>2022-06-16T20:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: Find and Open Excel File in Folder</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240536#M36127</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9392282"&gt;@eric.frissell26WKQ&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem with using&amp;nbsp;&lt;STRONG&gt;On Error Resume Next&lt;/STRONG&gt;&amp;nbsp;(OERN) on it's own, is that is can hide errors and make debugging a terror when the code just doesn't work, but it doesn't tell us it didn't work because the OERN is silencing the errors.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I still do it from time to time, but it's generally considered poor practice.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you are going to use it, it should be used with a proper error catch. You can Google "VBA error handlers" and find a bunch of info on that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The other thing to know is that you can not use OERN in the same code as Try/Catch statements. And Try/Catch statements are really useful.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With all of that said. I did mix a lot of syntactical try/catch stuff in my previous reply, so let me see if I can clear things up.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These 4 do the same thing:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1) This one catches and handles the error separately from the remedy action, which is in the Finally.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt; &lt;SPAN&gt;'try to get the value&lt;/SPAN&gt;
	&lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;Catch&lt;/SPAN&gt; &lt;SPAN&gt;'catch the error when the param isn't found&lt;/SPAN&gt;
	&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Param not found"&lt;/SPAN&gt;)
&lt;SPAN&gt;Finally&lt;/SPAN&gt;
	&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;2) This one catches and handles the error in step with the remedy action.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt; &lt;SPAN&gt;'try to get the value&lt;/SPAN&gt;
	&lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;Catch&lt;/SPAN&gt; &lt;SPAN&gt;'catch the error when the param isn't found&lt;/SPAN&gt;
	&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Param not found"&lt;/SPAN&gt;)
	&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;3) This one catches and handles the error in step with the remedy action, but all in one line.&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt;: &lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;): &lt;SPAN&gt;Catch&lt;/SPAN&gt;: &lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Param not found"&lt;/SPAN&gt;): &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;): &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4) this one is doing the same thing, but is just using the colons to combine the Catch and End Try lines&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt;: &lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;Catch&lt;/SPAN&gt;: 	&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Param not found"&lt;/SPAN&gt;): &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;):&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or if no message box is needed, we could do this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt; &lt;SPAN&gt;'try to get the value&lt;/SPAN&gt;
	&lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;Catch&lt;/SPAN&gt; &lt;SPAN&gt;'catch the error when the param isn't found&lt;/SPAN&gt;
	&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or this one liner does the same as the last one:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt;: &lt;SPAN&gt;otest&lt;/SPAN&gt; = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;): &lt;SPAN&gt;Catch&lt;/SPAN&gt;: &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;CheckOrCreateParam&lt;/SPAN&gt;(&lt;SPAN&gt;oParamName&lt;/SPAN&gt;): &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Typically though you'll see this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt;
	&lt;SPAN&gt;' do something here&lt;/SPAN&gt;
&lt;SPAN&gt;Catch&lt;/SPAN&gt; 
	&lt;SPAN&gt;'catch the error when the something didn't work&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;Note too that you can catch the error message and hand that back to the user like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Try&lt;/SPAN&gt;
	&lt;SPAN&gt;' do something here&lt;/SPAN&gt;
&lt;SPAN&gt;Catch&lt;/SPAN&gt; &lt;SPAN&gt;ex&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Exception&lt;/SPAN&gt;
	&lt;SPAN&gt;'catch the error when the something didn't work&lt;/SPAN&gt;
	&lt;SPAN&gt;Messagebox&lt;/SPAN&gt;(&lt;SPAN&gt;ex&lt;/SPAN&gt;.&lt;SPAN&gt;Message&lt;/SPAN&gt;) 
&lt;SPAN&gt;Finally&lt;/SPAN&gt;
	&lt;SPAN&gt;'do the remedy for the something that didn't work&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
	&lt;/PRE&gt;
&lt;P&gt;I hope this helps.&lt;BR /&gt;Best of luck to you in all of your Inventor pursuits,&lt;BR /&gt;Curtis&lt;BR /&gt;&lt;A href="http://inventortrenches.blogspot.com" target="_blank"&gt;http://inventortrenches.blogspot.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2022 20:51:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/find-and-open-excel-file-in-folder/m-p/11240536#M36127</guid>
      <dc:creator>Curtis_W</dc:creator>
      <dc:date>2022-06-16T20:51:05Z</dc:date>
    </item>
  </channel>
</rss>

