<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Import Text in VBA</title>
	<atom:link href="http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/</link>
	<description>Daily posts of Excel tips…and other stuff</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:28:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: kibsi</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-46904</link>
		<dc:creator>kibsi</dc:creator>
		<pubDate>Mon, 14 Jun 2010 13:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-46904</guid>
		<description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;Do you know how can I select data in one line with information in another line in text file?&lt;/p&gt;
&lt;p&gt;for example:&lt;/p&gt;
&lt;p&gt;in text file:&lt;br&gt;
*****************************************************&lt;br&gt;
line 1: 1234 - data&lt;br&gt;
Line 2: all data are needed&lt;br&gt;
***************************************************** &lt;/p&gt;
&lt;p&gt;I want copy some words in line2 to excel, but I can&#039;t use any word from that line as guide.&lt;br&gt;
in this case can I use (1234) in line1 as a guide to select data in line2?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi all,</p>
<p>Do you know how can I select data in one line with information in another line in text file?</p>
<p>for example:</p>
<p>in text file:<br />
*****************************************************<br />
line 1: 1234 &#8211; data<br />
Line 2: all data are needed<br />
***************************************************** </p>
<p>I want copy some words in line2 to excel, but I can&#8217;t use any word from that line as guide.<br />
in this case can I use (1234) in line1 as a guide to select data in line2?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Emeka</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-36487</link>
		<dc:creator>Emeka</dc:creator>
		<pubDate>Tue, 16 Dec 2008 17:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-36487</guid>
		<description>&lt;p&gt;Mine failed , I can&#039;t figure what why? Function Replace was not defined and does not look like in-built. Could anyone assist me?&lt;/p&gt;
&lt;p&gt;Emeka&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Mine failed , I can&#8217;t figure what why? Function Replace was not defined and does not look like in-built. Could anyone assist me?</p>
<p>Emeka</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dick Kusleika</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-34201</link>
		<dc:creator>Dick Kusleika</dc:creator>
		<pubDate>Thu, 14 Aug 2008 15:20:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-34201</guid>
		<description>&lt;p&gt;TheIrishGit:  You have to escape your greater-than characters to post code in the comments.  Or you can mail it to me and I&#039;ll post it for you.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>TheIrishGit:  You have to escape your greater-than characters to post code in the comments.  Or you can mail it to me and I&#8217;ll post it for you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TheIrishGit</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-34199</link>
		<dc:creator>TheIrishGit</dc:creator>
		<pubDate>Thu, 14 Aug 2008 11:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-34199</guid>
		<description>&lt;p&gt;Sorry guys, given up trying to paste the code.&lt;/p&gt;
&lt;p&gt;Tig :(&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sorry guys, given up trying to paste the code.</p>
<p>Tig <img src='http://www.dailydoseofexcel.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TheIrishGit</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-34198</link>
		<dc:creator>TheIrishGit</dc:creator>
		<pubDate>Thu, 14 Aug 2008 11:41:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-34198</guid>
		<description>&lt;p&gt;Ok, 3rd time lucky with VB tags.&lt;/p&gt;
&lt;p&gt;&lt;code lang=&quot;vb&quot;&gt;&lt;br&gt;
 Option Explicit&lt;/code&gt;&lt;/p&gt;
&lt;code lang=&quot;vb&quot;&gt;
&lt;p&gt; Sub Import()&lt;/p&gt;
&lt;p&gt; Const lngLastRow As Long = 60000&lt;br&gt;
 Const strDelimiter As String = &quot;,&quot;&lt;br&gt;
 Const strYMD As String = &quot;yyyymmdd&quot;&lt;/p&gt;
&lt;p&gt; Dim objDestWkBk As Workbook&lt;br&gt;
 Dim objDestWkSht As Worksheet&lt;br&gt;
 Dim bFilter, bSkip As Boolean&lt;br&gt;
 Dim varCriteria() As Variant&lt;br&gt;
 Dim varResult As Variant&lt;br&gt;
 Dim varStartTime As Variant&lt;br&gt;
 Dim varEndTime As Variant&lt;br&gt;
 Dim dblCounter As Double&lt;br&gt;
 Dim lngFNumber As Long&lt;br&gt;
 Dim lngCounter As Long&lt;br&gt;
 Dim lngRows As Long&lt;br&gt;
 Dim i As Long&lt;br&gt;
 Dim strResult As String&lt;br&gt;
 Dim strFName As String&lt;br&gt;
 Dim strCriteria As String&lt;/p&gt;
&lt;p&gt; On Error GoTo CleanUp&lt;br&gt;
 Application.ScreenUpdating = False&lt;/p&gt;
&lt;p&gt; &#039;Find any filter criteria&lt;br&gt;
 If WorksheetFunction.CountA(Cells) &gt; 0 Then&lt;br&gt;
    lngCounter = Cells.Find(What:=&quot;*&quot;, After:=[A1], SearchOrder:=xlByColumns, _&lt;br&gt;
                 SearchDirection:=xlPrevious).Column&lt;br&gt;
 End If&lt;/p&gt;
&lt;p&gt; ReDim varCriteria(lngCounter)&lt;/p&gt;
&lt;p&gt; &#039;Check for a filter on ROW 15, removing surrounding double quotes&lt;br&gt;
 For i = 1 To lngCounter&lt;br&gt;
    varCriteria(i) = Cells(15, i).Text&lt;br&gt;
    If varCriteria(i) &gt; &quot;&quot; Then&lt;br&gt;
        bFilter = True&lt;br&gt;
        varCriteria(i) = Replace(varCriteria(i), Chr(34), &quot;&quot;)&lt;br&gt;
    End If&lt;br&gt;
 Next i&lt;/p&gt;
&lt;p&gt; &#039;Initialize variables&lt;br&gt;
 strFName = CStr(Application.GetOpenFilename)&lt;br&gt;
 If strFName = &quot;&quot; Or strFName = &quot;False&quot; Then End&lt;/p&gt;
&lt;p&gt; lngFNumber = FreeFile()&lt;br&gt;
 dblCounter = 1&lt;br&gt;
 lngCounter = 1&lt;/p&gt;
&lt;p&gt; &#039;Open File&lt;br&gt;
 Open strFName For Input As #lngFNumber&lt;br&gt;
 varStartTime = Time&lt;/p&gt;
&lt;p&gt; &#039;Create new workbook&lt;br&gt;
 Set objDestWkBk = Workbooks.Add(template:=xlWorksheet)&lt;br&gt;
 Set objDestWkSht = objDestWkBk.Worksheets(1)&lt;/p&gt;
&lt;p&gt; &#039;Import the File&lt;br&gt;
 Do While Seek(lngFNumber)  &quot;&quot; Then&lt;br&gt;
                If LCase(Mid(varCriteria(i), 1, 4)) = &quot;like&quot; Then&lt;br&gt;
                    If Not varResult(i - 1) Like Mid(varCriteria(i), 6) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&quot; Then&lt;br&gt;
                    If varResult(i - 1) = Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot; _&lt;br&gt;
                           Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt; Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&gt;=&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD)  Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 1) = &quot;&gt;&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD) = _&lt;br&gt;
                           Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt;= Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                End If&lt;br&gt;
            End If&lt;br&gt;
        Next i&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    &#039;Output data &amp; increment counters unless skipping this row&lt;br&gt;
    If Not bSkip Then&lt;br&gt;
        For i = LBound(varResult) To UBound(varResult)&lt;br&gt;
           objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)&lt;br&gt;
        Next i&lt;/p&gt;
&lt;p&gt;        If lngCounter = lngLastRow Then&lt;br&gt;
            lngCounter = 1&lt;br&gt;
            With objDestWkBk&lt;br&gt;
                Set objDestWkSht = .Worksheets.Add&lt;br&gt;
                objDestWkSht.Move After:=.Sheets(.Sheets.Count)&lt;br&gt;
            End With&lt;br&gt;
        Else: lngCounter = lngCounter + 1&lt;br&gt;
        End If&lt;br&gt;
        lngRows = lngRows + 1&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    dblCounter = dblCounter + 1&lt;br&gt;
 Loop&lt;/p&gt;
&lt;p&gt;CleanUp:&lt;br&gt;
 Close&lt;br&gt;
 Application.StatusBar = False&lt;br&gt;
 Application.ScreenUpdating = True&lt;br&gt;
 If Err.Number&lt;/p&gt;&lt;/code&gt;
&lt;p&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ok, 3rd time lucky with VB tags.</p>
<p><div class="codecolorer-container vb default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="vb codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;br&gt;<br />
&nbsp;<span style="color: #E56717; font-weight: bold;">Option</span> <span style="color: #E56717; font-weight: bold;">Explicit</span></div></div>
</p>
<div class="codecolorer-container vb default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="vb codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;p&gt; <span style="color: #E56717; font-weight: bold;">Sub</span> Import()&lt;/p&gt;<br />
&lt;p&gt; Const lngLastRow <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Long</span> = 60000&lt;br&gt;<br />
&nbsp;Const strDelimiter <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span> = <span style="color: #800000;">&quot;,&quot;</span>&lt;br&gt;<br />
&nbsp;Const strYMD <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span> = <span style="color: #800000;">&quot;yyyymmdd&quot;</span>&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #151B8D; font-weight: bold;">Dim</span> objDestWkBk <span style="color: #151B8D; font-weight: bold;">As</span> Workbook&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> objDestWkSht <span style="color: #151B8D; font-weight: bold;">As</span> Worksheet&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> bFilter, bSkip <span style="color: #151B8D; font-weight: bold;">As</span> Boolean&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> varCriteria() <span style="color: #151B8D; font-weight: bold;">As</span> Variant&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> varResult <span style="color: #151B8D; font-weight: bold;">As</span> Variant&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> varStartTime <span style="color: #151B8D; font-weight: bold;">As</span> Variant&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> varEndTime <span style="color: #151B8D; font-weight: bold;">As</span> Variant&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> dblCounter <span style="color: #151B8D; font-weight: bold;">As</span> Double&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> lngFNumber <span style="color: #151B8D; font-weight: bold;">As</span> Long&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> lngCounter <span style="color: #151B8D; font-weight: bold;">As</span> Long&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> lngRows <span style="color: #151B8D; font-weight: bold;">As</span> Long&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> i <span style="color: #151B8D; font-weight: bold;">As</span> Long&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> strResult <span style="color: #151B8D; font-weight: bold;">As</span> String&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> strFName <span style="color: #151B8D; font-weight: bold;">As</span> String&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Dim</span> strCriteria <span style="color: #151B8D; font-weight: bold;">As</span> String&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #151B8D; font-weight: bold;">On</span> <span style="color: #151B8D; font-weight: bold;">Error</span> <span style="color: #8D38C9; font-weight: bold;">GoTo</span> CleanUp&lt;br&gt;<br />
&nbsp;Application.ScreenUpdating = False&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Find any filter criteria&lt;br&gt;<br />
</span> <span style="color: #8D38C9; font-weight: bold;">If</span> WorksheetFunction.CountA(Cells) &amp;gt; 0 Then&lt;br&gt;<br />
&nbsp; &nbsp; lngCounter = Cells.Find(What:=<span style="color: #800000;">&quot;*&quot;</span>, After:=[A1], SearchOrder:=xlByColumns, _&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SearchDirection:=xlPrevious).Column&lt;br&gt;<br />
&nbsp;<span style="color: #8D38C9; font-weight: bold;">End</span> If&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #151B8D; font-weight: bold;">ReDim</span> varCriteria(lngCounter)&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Check for a filter on ROW 15, removing surrounding double quotes&lt;br&gt;<br />
</span> <span style="color: #8D38C9; font-weight: bold;">For</span> i = 1 <span style="color: #8D38C9; font-weight: bold;">To</span> lngCounter&lt;br&gt;<br />
&nbsp; &nbsp; varCriteria(i) = Cells(15, i).Text&lt;br&gt;<br />
&nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">If</span> varCriteria(i) &amp;gt; <span style="color: #800000;">&quot;&quot;</span> Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; bFilter = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; varCriteria(i) = Replace(varCriteria(i), Chr(34), <span style="color: #800000;">&quot;&quot;</span>)&lt;br&gt;<br />
&nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">End</span> If&lt;br&gt;<br />
&nbsp;<span style="color: #8D38C9; font-weight: bold;">Next</span> i&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Initialize variables&lt;br&gt;<br />
</span> strFName = CStr(Application.GetOpenFilename)&lt;br&gt;<br />
&nbsp;<span style="color: #8D38C9; font-weight: bold;">If</span> strFName = <span style="color: #800000;">&quot;&quot;</span> <span style="color: #8D38C9; font-weight: bold;">Or</span> strFName = <span style="color: #800000;">&quot;False&quot;</span> <span style="color: #8D38C9; font-weight: bold;">Then</span> End&lt;/p&gt;<br />
&lt;p&gt; lngFNumber = FreeFile()&lt;br&gt;<br />
&nbsp;dblCounter = 1&lt;br&gt;<br />
&nbsp;lngCounter = 1&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Open File&lt;br&gt;<br />
</span> <span style="color: #151B8D; font-weight: bold;">Open</span> strFName <span style="color: #8D38C9; font-weight: bold;">For</span> <span style="color: #151B8D; font-weight: bold;">Input</span> <span style="color: #151B8D; font-weight: bold;">As</span> #lngFNumber&lt;br&gt;<br />
&nbsp;varStartTime = Time&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Create new workbook&lt;br&gt;<br />
</span> <span style="color: #151B8D; font-weight: bold;">Set</span> objDestWkBk = Workbooks.Add(template:=xlWorksheet)&lt;br&gt;<br />
&nbsp;<span style="color: #151B8D; font-weight: bold;">Set</span> objDestWkSht = objDestWkBk.Worksheets(1)&lt;/p&gt;<br />
&lt;p&gt; <span style="color: #008000;">'Import the File&lt;br&gt;<br />
</span> <span style="color: #8D38C9; font-weight: bold;">Do</span> <span style="color: #8D38C9; font-weight: bold;">While</span> Seek(lngFNumber) &nbsp;<span style="color: #800000;">&quot;&quot;</span> Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">If</span> LCase(Mid(varCriteria(i), 1, 4)) = <span style="color: #800000;">&quot;like&quot;</span> Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">If</span> <span style="color: #8D38C9; font-weight: bold;">Not</span> varResult(i - 1) <span style="color: #8D38C9; font-weight: bold;">Like</span> Mid(varCriteria(i), 6) <span style="color: #8D38C9; font-weight: bold;">Then</span> bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">ElseIf</span> Mid(varCriteria(i), 1, 2) = <span style="color: #800000;">&quot;&quot;</span> Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">If</span> varResult(i - 1) = Mid(varCriteria(i), 3) <span style="color: #8D38C9; font-weight: bold;">Then</span> bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #8D38C9; font-weight: bold;">ElseIf</span> Mid(varCriteria(i), 1, 2) = <span style="color: #800000;">&quot; _&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If varResult(i - 1) &amp;gt; Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ElseIf Mid(varCriteria(i), 1, 2) = &quot;</span>&amp;gt;=<span style="color: #800000;">&quot; Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsDate(varResult(i - 1)) Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Format(varResult(i - 1), strYMD) &nbsp;Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ElseIf Mid(varCriteria(i), 1, 1) = &quot;</span>&amp;gt;<span style="color: #800000;">&quot; Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsDate(varResult(i - 1)) Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Format(varResult(i - 1), strYMD) = _&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If varResult(i - 1) &amp;gt;= Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Next i&lt;br&gt;<br />
&nbsp; &nbsp; End If&lt;/p&gt;<br />
&lt;p&gt; &nbsp; &nbsp;'Output data &amp;amp; increment counters unless skipping this row&lt;br&gt;<br />
&nbsp; &nbsp; If Not bSkip Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; For i = LBound(varResult) To UBound(varResult)&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Next i&lt;/p&gt;<br />
&lt;p&gt; &nbsp; &nbsp; &nbsp; &nbsp;If lngCounter = lngLastRow Then&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lngCounter = 1&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With objDestWkBk&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set objDestWkSht = .Worksheets.Add&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objDestWkSht.Move After:=.Sheets(.Sheets.Count)&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End With&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Else: lngCounter = lngCounter + 1&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; End If&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; lngRows = lngRows + 1&lt;br&gt;<br />
&nbsp; &nbsp; End If&lt;/p&gt;<br />
&lt;p&gt; &nbsp; &nbsp;dblCounter = dblCounter + 1&lt;br&gt;<br />
&nbsp;Loop&lt;/p&gt;<br />
&lt;p&gt;CleanUp:&lt;br&gt;<br />
&nbsp;Close&lt;br&gt;<br />
&nbsp;Application.StatusBar = False&lt;br&gt;<br />
&nbsp;Application.ScreenUpdating = True&lt;br&gt;<br />
&nbsp;If Err.Number&lt;/p&gt;</span></div></div></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TheIrishGit</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-34197</link>
		<dc:creator>TheIrishGit</dc:creator>
		<pubDate>Thu, 14 Aug 2008 11:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-34197</guid>
		<description>&lt;p&gt;Um, the code above didn&#039;t paste in correctly for some reason, here it is again.&lt;/p&gt;
&lt;p&gt; Option Explicit&lt;/p&gt;
&lt;p&gt; Sub Import()&lt;/p&gt;
&lt;p&gt; Const lngLastRow As Long = 60000&lt;br&gt;
 Const strDelimiter As String = &quot;,&quot;&lt;br&gt;
 Const strYMD As String = &quot;yyyymmdd&quot;&lt;/p&gt;
&lt;p&gt; Dim objDestWkBk As Workbook&lt;br&gt;
 Dim objDestWkSht As Worksheet&lt;br&gt;
 Dim bFilter, bSkip As Boolean&lt;br&gt;
 Dim varCriteria() As Variant&lt;br&gt;
 Dim varResult As Variant&lt;br&gt;
 Dim varStartTime As Variant&lt;br&gt;
 Dim varEndTime As Variant&lt;br&gt;
 Dim dblCounter As Double&lt;br&gt;
 Dim lngFNumber As Long&lt;br&gt;
 Dim lngCounter As Long&lt;br&gt;
 Dim lngRows As Long&lt;br&gt;
 Dim i As Long&lt;br&gt;
 Dim strResult As String&lt;br&gt;
 Dim strFName As String&lt;br&gt;
 Dim strCriteria As String&lt;/p&gt;
&lt;p&gt; On Error GoTo CleanUp&lt;br&gt;
 Application.ScreenUpdating = False&lt;/p&gt;
&lt;p&gt; &#039;Find any filter criteria&lt;br&gt;
 If WorksheetFunction.CountA(Cells) &gt; 0 Then&lt;br&gt;
    lngCounter = Cells.Find(What:=&quot;*&quot;, After:=[A1], SearchOrder:=xlByColumns, _&lt;br&gt;
                 SearchDirection:=xlPrevious).Column&lt;br&gt;
 End If&lt;/p&gt;
&lt;p&gt; ReDim varCriteria(lngCounter)&lt;/p&gt;
&lt;p&gt; &#039;Check for a filter on ROW 15, removing surrounding double quotes&lt;br&gt;
 For i = 1 To lngCounter&lt;br&gt;
    varCriteria(i) = Cells(15, i).Text&lt;br&gt;
    If varCriteria(i) &gt; &quot;&quot; Then&lt;br&gt;
        bFilter = True&lt;br&gt;
        varCriteria(i) = Replace(varCriteria(i), Chr(34), &quot;&quot;)&lt;br&gt;
    End If&lt;br&gt;
 Next i&lt;/p&gt;
&lt;p&gt; &#039;Initialize variables&lt;br&gt;
 strFName = CStr(Application.GetOpenFilename)&lt;br&gt;
 If strFName = &quot;&quot; Or strFName = &quot;False&quot; Then End&lt;/p&gt;
&lt;p&gt; lngFNumber = FreeFile()&lt;br&gt;
 dblCounter = 1&lt;br&gt;
 lngCounter = 1&lt;/p&gt;
&lt;p&gt; &#039;Open File&lt;br&gt;
 Open strFName For Input As #lngFNumber&lt;br&gt;
 varStartTime = Time&lt;/p&gt;
&lt;p&gt; &#039;Create new workbook&lt;br&gt;
 Set objDestWkBk = Workbooks.Add(template:=xlWorksheet)&lt;br&gt;
 Set objDestWkSht = objDestWkBk.Worksheets(1)&lt;/p&gt;
&lt;p&gt; &#039;Import the File&lt;br&gt;
 Do While Seek(lngFNumber)  &quot;&quot; Then&lt;br&gt;
                If LCase(Mid(varCriteria(i), 1, 4)) = &quot;like&quot; Then&lt;br&gt;
                    If Not varResult(i - 1) Like Mid(varCriteria(i), 6) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&quot; Then&lt;br&gt;
                    If varResult(i - 1) = Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot; _&lt;br&gt;
                           Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt; Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&gt;=&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD)  Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 1) = &quot;&gt;&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD) = _&lt;br&gt;
                           Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt;= Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                End If&lt;br&gt;
            End If&lt;br&gt;
        Next i&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    &#039;Output data &amp; increment counters unless skipping this row&lt;br&gt;
    If Not bSkip Then&lt;br&gt;
        For i = LBound(varResult) To UBound(varResult)&lt;br&gt;
           objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)&lt;br&gt;
        Next i&lt;/p&gt;
&lt;p&gt;        If lngCounter = lngLastRow Then&lt;br&gt;
            lngCounter = 1&lt;br&gt;
            With objDestWkBk&lt;br&gt;
                Set objDestWkSht = .Worksheets.Add&lt;br&gt;
                objDestWkSht.Move After:=.Sheets(.Sheets.Count)&lt;br&gt;
            End With&lt;br&gt;
        Else: lngCounter = lngCounter + 1&lt;br&gt;
        End If&lt;br&gt;
        lngRows = lngRows + 1&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    dblCounter = dblCounter + 1&lt;br&gt;
 Loop&lt;/p&gt;
&lt;p&gt;CleanUp:&lt;br&gt;
 Close&lt;br&gt;
 Application.StatusBar = False&lt;br&gt;
 Application.ScreenUpdating = True&lt;br&gt;
 If Err.Number&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Um, the code above didn&#8217;t paste in correctly for some reason, here it is again.</p>
<p> Option Explicit</p>
<p> Sub Import()</p>
<p> Const lngLastRow As Long = 60000<br />
 Const strDelimiter As String = &#8220;,&#8221;<br />
 Const strYMD As String = &#8220;yyyymmdd&#8221;</p>
<p> Dim objDestWkBk As Workbook<br />
 Dim objDestWkSht As Worksheet<br />
 Dim bFilter, bSkip As Boolean<br />
 Dim varCriteria() As Variant<br />
 Dim varResult As Variant<br />
 Dim varStartTime As Variant<br />
 Dim varEndTime As Variant<br />
 Dim dblCounter As Double<br />
 Dim lngFNumber As Long<br />
 Dim lngCounter As Long<br />
 Dim lngRows As Long<br />
 Dim i As Long<br />
 Dim strResult As String<br />
 Dim strFName As String<br />
 Dim strCriteria As String</p>
<p> On Error GoTo CleanUp<br />
 Application.ScreenUpdating = False</p>
<p> &#8216;Find any filter criteria<br />
 If WorksheetFunction.CountA(Cells) &gt; 0 Then<br />
    lngCounter = Cells.Find(What:=&#8221;*&#8221;, After:=[A1], SearchOrder:=xlByColumns, _<br />
                 SearchDirection:=xlPrevious).Column<br />
 End If</p>
<p> ReDim varCriteria(lngCounter)</p>
<p> &#8216;Check for a filter on ROW 15, removing surrounding double quotes<br />
 For i = 1 To lngCounter<br />
    varCriteria(i) = Cells(15, i).Text<br />
    If varCriteria(i) &gt; &#8220;&#8221; Then<br />
        bFilter = True<br />
        varCriteria(i) = Replace(varCriteria(i), Chr(34), &#8220;&#8221;)<br />
    End If<br />
 Next i</p>
<p> &#8216;Initialize variables<br />
 strFName = CStr(Application.GetOpenFilename)<br />
 If strFName = &#8220;&#8221; Or strFName = &#8220;False&#8221; Then End</p>
<p> lngFNumber = FreeFile()<br />
 dblCounter = 1<br />
 lngCounter = 1</p>
<p> &#8216;Open File<br />
 Open strFName For Input As #lngFNumber<br />
 varStartTime = Time</p>
<p> &#8216;Create new workbook<br />
 Set objDestWkBk = Workbooks.Add(template:=xlWorksheet)<br />
 Set objDestWkSht = objDestWkBk.Worksheets(1)</p>
<p> &#8216;Import the File<br />
 Do While Seek(lngFNumber)  &#8220;&#8221; Then<br />
                If LCase(Mid(varCriteria(i), 1, 4)) = &#8220;like&#8221; Then<br />
                    If Not varResult(i &#8211; 1) Like Mid(varCriteria(i), 6) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8220;&#8221; Then<br />
                    If varResult(i &#8211; 1) = Mid(varCriteria(i), 3) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8221; _<br />
                           Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True<br />
                    Else<br />
                        If varResult(i &#8211; 1) &gt; Mid(varCriteria(i), 3) Then bSkip = True<br />
                    End If<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8220;&gt;=&#8221; Then<br />
                    If IsDate(varResult(i &#8211; 1)) Then<br />
                        If Format(varResult(i &#8211; 1), strYMD)  Mid(varCriteria(i), 2) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 1) = &#8220;&gt;&#8221; Then<br />
                    If IsDate(varResult(i &#8211; 1)) Then<br />
                        If Format(varResult(i &#8211; 1), strYMD) = _<br />
                           Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True<br />
                    Else<br />
                        If varResult(i &#8211; 1) &gt;= Mid(varCriteria(i), 2) Then bSkip = True<br />
                    End If<br />
                End If<br />
            End If<br />
        Next i<br />
    End If</p>
<p>    &#8216;Output data &amp; increment counters unless skipping this row<br />
    If Not bSkip Then<br />
        For i = LBound(varResult) To UBound(varResult)<br />
           objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)<br />
        Next i</p>
<p>        If lngCounter = lngLastRow Then<br />
            lngCounter = 1<br />
            With objDestWkBk<br />
                Set objDestWkSht = .Worksheets.Add<br />
                objDestWkSht.Move After:=.Sheets(.Sheets.Count)<br />
            End With<br />
        Else: lngCounter = lngCounter + 1<br />
        End If<br />
        lngRows = lngRows + 1<br />
    End If</p>
<p>    dblCounter = dblCounter + 1<br />
 Loop</p>
<p>CleanUp:<br />
 Close<br />
 Application.StatusBar = False<br />
 Application.ScreenUpdating = True<br />
 If Err.Number</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TheIrishGit</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-34195</link>
		<dc:creator>TheIrishGit</dc:creator>
		<pubDate>Thu, 14 Aug 2008 11:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-34195</guid>
		<description>&lt;p&gt;Hi all, basic macro was good, I changed it a bit as  I needed to add filtering to the data I wanted to import.&lt;/p&gt;
&lt;p&gt;There is hard coding (sincerest apologies, was in a hurry) &amp; I&#039;ve specified row 15 as the row to look for the filter criteria but you can change it as necessary. &lt;/p&gt;
&lt;p&gt;USAGE: Specify the filter in the excel column that relates to the csv data you want to filter, i.e. if you want csv column 3 to be GBP then enter &quot;=GBP&quot; in column c in excel. You need &quot;&quot; around the filters or excel will think it&#039;s a formula &amp; I&#039;ve made the criteria case sensitive on purpose.&lt;/p&gt;
&lt;p&gt;NOT: If specifying a date as a filter, regional date settings must match the format of the csv date or some of the dates won&#039;t match.&lt;/p&gt;
&lt;p&gt;Example filters:&quot;=123456?, &quot;abcdef&quot;, &quot;xyzxyz&quot;, &quot;like *abcd*&quot;&lt;/p&gt;
&lt;p&gt;Enjoy. :)&lt;/p&gt;
&lt;p&gt;Tig (aka TheIrishGit)&lt;/p&gt;
&lt;p&gt; Option Explicit&lt;/p&gt;
&lt;p&gt; Sub Import()&lt;/p&gt;
&lt;p&gt; Const lngLastRow As Long = 60000&lt;br&gt;
 Const strDelimiter As String = &quot;,&quot;&lt;br&gt;
 Const strYMD As String = &quot;yyyymmdd&quot;&lt;/p&gt;
&lt;p&gt; Dim objDestWkBk As Workbook&lt;br&gt;
 Dim objDestWkSht As Worksheet&lt;br&gt;
 Dim bFilter, bSkip As Boolean&lt;br&gt;
 Dim varCriteria() As Variant&lt;br&gt;
 Dim varResult As Variant&lt;br&gt;
 Dim varStartTime As Variant&lt;br&gt;
 Dim varEndTime As Variant&lt;br&gt;
 Dim dblCounter As Double&lt;br&gt;
 Dim lngFNumber As Long&lt;br&gt;
 Dim lngCounter As Long&lt;br&gt;
 Dim lngRows As Long&lt;br&gt;
 Dim i As Long&lt;br&gt;
 Dim strResult As String&lt;br&gt;
 Dim strFName As String&lt;br&gt;
 Dim strCriteria As String&lt;/p&gt;
&lt;p&gt; On Error GoTo CleanUp&lt;br&gt;
 Application.ScreenUpdating = False&lt;/p&gt;
&lt;p&gt; &#039;Find any filter criteria&lt;br&gt;
 If WorksheetFunction.CountA(Cells) &gt; 0 Then&lt;br&gt;
    lngCounter = Cells.Find(What:=&quot;*&quot;, After:=[A1], SearchOrder:=xlByColumns, _&lt;br&gt;
                 SearchDirection:=xlPrevious).Column&lt;br&gt;
 End If&lt;/p&gt;
&lt;p&gt; ReDim varCriteria(lngCounter)&lt;/p&gt;
&lt;p&gt; &#039;Check for a filter on ROW 15, removing surrounding double quotes&lt;br&gt;
 For i = 1 To lngCounter&lt;br&gt;
    varCriteria(i) = Cells(15, i).Text&lt;br&gt;
    If varCriteria(i) &gt; &quot;&quot; Then&lt;br&gt;
        bFilter = True&lt;br&gt;
        varCriteria(i) = Replace(varCriteria(i), Chr(34), &quot;&quot;)&lt;br&gt;
    End If&lt;br&gt;
 Next i&lt;/p&gt;
&lt;p&gt; &#039;Initialize variables&lt;br&gt;
 strFName = CStr(Application.GetOpenFilename)&lt;br&gt;
 If strFName = &quot;&quot; Or strFName = &quot;False&quot; Then End&lt;/p&gt;
&lt;p&gt; lngFNumber = FreeFile()&lt;br&gt;
 dblCounter = 1&lt;br&gt;
 lngCounter = 1&lt;/p&gt;
&lt;p&gt; &#039;Open File&lt;br&gt;
 Open strFName For Input As #lngFNumber&lt;br&gt;
 varStartTime = Time&lt;/p&gt;
&lt;p&gt; &#039;Create new workbook&lt;br&gt;
 Set objDestWkBk = Workbooks.Add(template:=xlWorksheet)&lt;br&gt;
 Set objDestWkSht = objDestWkBk.Worksheets(1)&lt;/p&gt;
&lt;p&gt; &#039;Import the File&lt;br&gt;
 Do While Seek(lngFNumber)  &quot;&quot; Then&lt;br&gt;
                If LCase(Mid(varCriteria(i), 1, 4)) = &quot;like&quot; Then&lt;br&gt;
                    If Not varResult(i - 1) Like Mid(varCriteria(i), 6) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&quot; Then&lt;br&gt;
                    If varResult(i - 1) = Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot; _&lt;br&gt;
                           Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt; Mid(varCriteria(i), 3) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 2) = &quot;&gt;=&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD)  Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                ElseIf Mid(varCriteria(i), 1, 1) = &quot;&gt;&quot; Then&lt;br&gt;
                    If IsDate(varResult(i - 1)) Then&lt;br&gt;
                        If Format(varResult(i - 1), strYMD) = _&lt;br&gt;
                           Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True&lt;br&gt;
                    Else&lt;br&gt;
                        If varResult(i - 1) &gt;= Mid(varCriteria(i), 2) Then bSkip = True&lt;br&gt;
                    End If&lt;br&gt;
                End If&lt;br&gt;
            End If&lt;br&gt;
        Next i&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    &#039;Output data &amp; increment counters unless skipping this row&lt;br&gt;
    If Not bSkip Then&lt;br&gt;
        For i = LBound(varResult) To UBound(varResult)&lt;br&gt;
           objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)&lt;br&gt;
        Next i&lt;/p&gt;
&lt;p&gt;        If lngCounter = lngLastRow Then&lt;br&gt;
            lngCounter = 1&lt;br&gt;
            With objDestWkBk&lt;br&gt;
                Set objDestWkSht = .Worksheets.Add&lt;br&gt;
                objDestWkSht.Move After:=.Sheets(.Sheets.Count)&lt;br&gt;
            End With&lt;br&gt;
        Else: lngCounter = lngCounter + 1&lt;br&gt;
        End If&lt;br&gt;
        lngRows = lngRows + 1&lt;br&gt;
    End If&lt;/p&gt;
&lt;p&gt;    dblCounter = dblCounter + 1&lt;br&gt;
 Loop&lt;/p&gt;
&lt;p&gt;CleanUp:&lt;br&gt;
 Close&lt;br&gt;
 Application.StatusBar = False&lt;br&gt;
 Application.ScreenUpdating = True&lt;br&gt;
 If Err.Number&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi all, basic macro was good, I changed it a bit as  I needed to add filtering to the data I wanted to import.</p>
<p>There is hard coding (sincerest apologies, was in a hurry) &amp; I&#8217;ve specified row 15 as the row to look for the filter criteria but you can change it as necessary. </p>
<p>USAGE: Specify the filter in the excel column that relates to the csv data you want to filter, i.e. if you want csv column 3 to be GBP then enter &#8220;=GBP&#8221; in column c in excel. You need &#8220;&#8221; around the filters or excel will think it&#8217;s a formula &amp; I&#8217;ve made the criteria case sensitive on purpose.</p>
<p>NOT: If specifying a date as a filter, regional date settings must match the format of the csv date or some of the dates won&#8217;t match.</p>
<p>Example filters:&#8221;=123456?, &#8220;abcdef&#8221;, &#8220;xyzxyz&#8221;, &#8220;like *abcd*&#8221;</p>
<p>Enjoy. <img src='http://www.dailydoseofexcel.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Tig (aka TheIrishGit)</p>
<p> Option Explicit</p>
<p> Sub Import()</p>
<p> Const lngLastRow As Long = 60000<br />
 Const strDelimiter As String = &#8220;,&#8221;<br />
 Const strYMD As String = &#8220;yyyymmdd&#8221;</p>
<p> Dim objDestWkBk As Workbook<br />
 Dim objDestWkSht As Worksheet<br />
 Dim bFilter, bSkip As Boolean<br />
 Dim varCriteria() As Variant<br />
 Dim varResult As Variant<br />
 Dim varStartTime As Variant<br />
 Dim varEndTime As Variant<br />
 Dim dblCounter As Double<br />
 Dim lngFNumber As Long<br />
 Dim lngCounter As Long<br />
 Dim lngRows As Long<br />
 Dim i As Long<br />
 Dim strResult As String<br />
 Dim strFName As String<br />
 Dim strCriteria As String</p>
<p> On Error GoTo CleanUp<br />
 Application.ScreenUpdating = False</p>
<p> &#8216;Find any filter criteria<br />
 If WorksheetFunction.CountA(Cells) &gt; 0 Then<br />
    lngCounter = Cells.Find(What:=&#8221;*&#8221;, After:=[A1], SearchOrder:=xlByColumns, _<br />
                 SearchDirection:=xlPrevious).Column<br />
 End If</p>
<p> ReDim varCriteria(lngCounter)</p>
<p> &#8216;Check for a filter on ROW 15, removing surrounding double quotes<br />
 For i = 1 To lngCounter<br />
    varCriteria(i) = Cells(15, i).Text<br />
    If varCriteria(i) &gt; &#8220;&#8221; Then<br />
        bFilter = True<br />
        varCriteria(i) = Replace(varCriteria(i), Chr(34), &#8220;&#8221;)<br />
    End If<br />
 Next i</p>
<p> &#8216;Initialize variables<br />
 strFName = CStr(Application.GetOpenFilename)<br />
 If strFName = &#8220;&#8221; Or strFName = &#8220;False&#8221; Then End</p>
<p> lngFNumber = FreeFile()<br />
 dblCounter = 1<br />
 lngCounter = 1</p>
<p> &#8216;Open File<br />
 Open strFName For Input As #lngFNumber<br />
 varStartTime = Time</p>
<p> &#8216;Create new workbook<br />
 Set objDestWkBk = Workbooks.Add(template:=xlWorksheet)<br />
 Set objDestWkSht = objDestWkBk.Worksheets(1)</p>
<p> &#8216;Import the File<br />
 Do While Seek(lngFNumber)  &#8220;&#8221; Then<br />
                If LCase(Mid(varCriteria(i), 1, 4)) = &#8220;like&#8221; Then<br />
                    If Not varResult(i &#8211; 1) Like Mid(varCriteria(i), 6) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8220;&#8221; Then<br />
                    If varResult(i &#8211; 1) = Mid(varCriteria(i), 3) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8221; _<br />
                           Format(Mid(varCriteria(i), 3), strYMD) Then bSkip = True<br />
                    Else<br />
                        If varResult(i &#8211; 1) &gt; Mid(varCriteria(i), 3) Then bSkip = True<br />
                    End If<br />
                ElseIf Mid(varCriteria(i), 1, 2) = &#8220;&gt;=&#8221; Then<br />
                    If IsDate(varResult(i &#8211; 1)) Then<br />
                        If Format(varResult(i &#8211; 1), strYMD)  Mid(varCriteria(i), 2) Then bSkip = True<br />
                ElseIf Mid(varCriteria(i), 1, 1) = &#8220;&gt;&#8221; Then<br />
                    If IsDate(varResult(i &#8211; 1)) Then<br />
                        If Format(varResult(i &#8211; 1), strYMD) = _<br />
                           Format(Mid(varCriteria(i), 2), strYMD) Then bSkip = True<br />
                    Else<br />
                        If varResult(i &#8211; 1) &gt;= Mid(varCriteria(i), 2) Then bSkip = True<br />
                    End If<br />
                End If<br />
            End If<br />
        Next i<br />
    End If</p>
<p>    &#8216;Output data &amp; increment counters unless skipping this row<br />
    If Not bSkip Then<br />
        For i = LBound(varResult) To UBound(varResult)<br />
           objDestWkSht.Cells(lngCounter, i + 1).Value = varResult(i)<br />
        Next i</p>
<p>        If lngCounter = lngLastRow Then<br />
            lngCounter = 1<br />
            With objDestWkBk<br />
                Set objDestWkSht = .Worksheets.Add<br />
                objDestWkSht.Move After:=.Sheets(.Sheets.Count)<br />
            End With<br />
        Else: lngCounter = lngCounter + 1<br />
        End If<br />
        lngRows = lngRows + 1<br />
    End If</p>
<p>    dblCounter = dblCounter + 1<br />
 Loop</p>
<p>CleanUp:<br />
 Close<br />
 Application.StatusBar = False<br />
 Application.ScreenUpdating = True<br />
 If Err.Number</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans Schraven</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-33082</link>
		<dc:creator>Hans Schraven</dc:creator>
		<pubDate>Mon, 23 Jun 2008 12:23:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-33082</guid>
		<description>&lt;p&gt;An Alternative, using Word&#039;s built-in facilities:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; white-space: nowrap;&quot; class=&quot;codecolorer-container vb default&quot;&gt;&lt;div style=&quot;white-space: nowrap;&quot; class=&quot;vb codecolorer&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;Sub&lt;/span&gt; textimport1()&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;On&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Error&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Resume&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Next&lt;/span&gt;&lt;br&gt;
&#160; &lt;span class=&quot;co1&quot;&gt;&#039; open Word if it&#039;s not in the memory already&lt;br&gt;
&lt;/span&gt; &#160;GetObject , &lt;span class=&quot;st0&quot;&gt;&quot;Word.Application&quot;&lt;/span&gt;&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;If&lt;/span&gt; Err.Number &gt; 0 &lt;span class=&quot;kw1&quot;&gt;Then&lt;/span&gt; CreateObject &lt;span class=&quot;st0&quot;&gt;&quot;Word.application&quot;&lt;/span&gt;&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt; GetObject(, &lt;span class=&quot;st0&quot;&gt;&quot;Word.Application&quot;&lt;/span&gt;)&lt;br&gt;
&#160; &#160; .Documents.Add &lt;span class=&quot;st0&quot;&gt;&quot;E:OFadressen.txt&quot;&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;co1&quot;&gt;&#039; replace the current fielddelimiter (vbtab) by the comma&lt;br&gt;
&lt;/span&gt; &#160; &#160;&lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt; .Selection.Find&lt;br&gt;
&#160; &#160; &#160; .Execute vbTab, , , , , , , 1, , &lt;span class=&quot;st0&quot;&gt;&quot;,&quot;&lt;/span&gt;, 2&lt;br&gt;
&#160; &#160; &lt;span class=&quot;co1&quot;&gt;&#039; delete undesired characters&lt;br&gt;
&lt;/span&gt; &#160; &#160; &#160;&lt;span class=&quot;kw1&quot;&gt;For&lt;/span&gt; j = 1 &lt;span class=&quot;kw1&quot;&gt;To&lt;/span&gt; 5&lt;br&gt;
&#160; &#160; &#160; &#160; .Execute Choose(j, &lt;span class=&quot;st0&quot;&gt;&quot;a&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;b&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;c&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;d&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;e&quot;&lt;/span&gt;), , , , , , , 1, , &lt;span class=&quot;st0&quot;&gt;&quot;&quot;&lt;/span&gt;, 2&lt;br&gt;
&#160; &#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Next&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;co1&quot;&gt;&#039; save the txt file as csv file&lt;br&gt;
&lt;/span&gt; &#160; &#160;&lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt; .ActiveDocument&lt;br&gt;
&#160; &#160; &#160; .SaveAs &lt;span class=&quot;st0&quot;&gt;&quot;E:OFadressen 000.csv&quot;&lt;/span&gt;, 2&lt;br&gt;
&#160; &#160; &#160; .&lt;span class=&quot;kw1&quot;&gt;Close&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt;&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;With&lt;/span&gt;&lt;br&gt;
&#160; &lt;span class=&quot;co1&quot;&gt;&#039; opene the csv file as a new workbook&lt;br&gt;
&lt;/span&gt; &#160;Workbooks.Add &lt;span class=&quot;st0&quot;&gt;&quot;E:OFadressen 000.csv&quot;&lt;/span&gt;&lt;br&gt;
&lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Sub&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;the a, b, c are representing characters that you want to be deleted from your file. Because of the limitations of Wordpress (or my unability tot overcome them) I used thes chacters instead of the escape -characters I should avoid.&lt;br&gt;
I suspect that my method runs faster than Dick&#039;s suggestion.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>An Alternative, using Word&#8217;s built-in facilities:</p>
<div style="overflow: auto; white-space: nowrap;" class="codecolorer-container vb default">
<div style="white-space: nowrap;" class="vb codecolorer"><span class="kw1">Sub</span> textimport1()<br />
&nbsp; <span class="kw1">On</span> <span class="kw1">Error</span> <span class="kw1">Resume</span> <span class="kw1">Next</span><br />
&nbsp; <span class="co1">&#8216; open Word if it&#8217;s not in the memory already<br />
</span> &nbsp;GetObject , <span class="st0">&#8220;Word.Application&#8221;</span><br />
&nbsp; <span class="kw1">If</span> Err.Number &amp;gt; 0 <span class="kw1">Then</span> CreateObject <span class="st0">&#8220;Word.application&#8221;</span><br />
&nbsp; <span class="kw1">With</span> GetObject(, <span class="st0">&#8220;Word.Application&#8221;</span>)<br />
&nbsp; &nbsp; .Documents.Add <span class="st0">&#8220;E:OFadressen.txt&#8221;</span><br />
&nbsp; &nbsp; <span class="co1">&#8216; replace the current fielddelimiter (vbtab) by the comma<br />
</span> &nbsp; &nbsp;<span class="kw1">With</span> .Selection.Find<br />
&nbsp; &nbsp; &nbsp; .Execute vbTab, , , , , , , 1, , <span class="st0">&#8220;,&#8221;</span>, 2<br />
&nbsp; &nbsp; <span class="co1">&#8216; delete undesired characters<br />
</span> &nbsp; &nbsp; &nbsp;<span class="kw1">For</span> j = 1 <span class="kw1">To</span> 5<br />
&nbsp; &nbsp; &nbsp; &nbsp; .Execute Choose(j, <span class="st0">&#8220;a&#8221;</span>, <span class="st0">&#8220;b&#8221;</span>, <span class="st0">&#8220;c&#8221;</span>, <span class="st0">&#8220;d&#8221;</span>, <span class="st0">&#8220;e&#8221;</span>), , , , , , , 1, , <span class="st0">&#8220;&#8221;</span>, 2<br />
&nbsp; &nbsp; &nbsp; <span class="kw1">Next</span><br />
&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">With</span><br />
&nbsp; &nbsp; <span class="co1">&#8216; save the txt file as csv file<br />
</span> &nbsp; &nbsp;<span class="kw1">With</span> .ActiveDocument<br />
&nbsp; &nbsp; &nbsp; .SaveAs <span class="st0">&#8220;E:OFadressen 000.csv&#8221;</span>, 2<br />
&nbsp; &nbsp; &nbsp; .<span class="kw1">Close</span><br />
&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">With</span><br />
&nbsp; <span class="kw1">End</span> <span class="kw1">With</span><br />
&nbsp; <span class="co1">&#8216; opene the csv file as a new workbook<br />
</span> &nbsp;Workbooks.Add <span class="st0">&#8220;E:OFadressen 000.csv&#8221;</span><br />
<span class="kw1">End</span> <span class="kw1">Sub</span></div>
</div>
<p>the a, b, c are representing characters that you want to be deleted from your file. Because of the limitations of WordPress (or my unability tot overcome them) I used thes chacters instead of the escape -characters I should avoid.<br />
I suspect that my method runs faster than Dick&#8217;s suggestion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug Jenkins</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-33058</link>
		<dc:creator>Doug Jenkins</dc:creator>
		<pubDate>Sun, 22 Jun 2008 01:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-33058</guid>
		<description>&lt;p&gt;Will - do you mean my code in the preceding comment, or Dick&#039;s code in the original post?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Will &#8211; do you mean my code in the preceding comment, or Dick&#8217;s code in the original post?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will</title>
		<link>http://www.dailydoseofexcel.com/archives/2005/02/08/import-text-in-vba/#comment-33009</link>
		<dc:creator>Will</dc:creator>
		<pubDate>Thu, 19 Jun 2008 19:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1011#comment-33009</guid>
		<description>&lt;p&gt;Hi,&lt;br&gt;
 I tried to run this code and runtime error 53 (file not found) was returned. How do I get around this?&lt;br&gt;
  Thanks,&lt;br&gt;
W&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi,<br />
 I tried to run this code and runtime error 53 (file not found) was returned. How do I get around this?<br />
  Thanks,<br />
W</p>
]]></content:encoded>
	</item>
</channel>
</rss>

