View Single Post
  #30   Report Post  
Posted to microsoft.public.excel.misc
Ron Rosenfeld Ron Rosenfeld is offline
external usenet poster
 
Posts: 5,651
Default Select specific text in cell

On Sat, 16 Feb 2008 16:31:39 -0500, "Rick Rothstein \(MVP - VB\)"
wrote:

Sorry, but I am not up to speed on my RegEx yet... would that retain the
c:
from the front of the path or not?


If there were no "\" after the C:, then it would be retained. But if the
C:
represents a drive, is C:filename legal? OR must it be C:\filename


Yes, c:filename is legal. In the flurry of postings we have done, you missed
my 2:40PM (EST) message. I am repeating it here so you don't have to look
for it... see my test() subroutine and note in particular the path/filename
used in the Open statement.

Expanding -- it would certainly be possible for a parser in which the "\"
preceding the filename was optional


Which is, of course, a possibility; though, in today's type file
referencing, somewhat rare. If the default path is at the directory where
the file is located, then you can legally specify the file using something
like this... c:filename.ext and the operating system will look in the
current directory. On my system, there is a directory called TEMP at the
root level of my C: drive. In that directory is a file named Test.txt. The
following code (showing a 'backslashless' path reference) prints the first
line of the file into the Immediate window...

Sub test()
ChDir "c:\temp"
Open "c:test.txt" For Input As #1
Line Input #1, LineOfText
Close #1
Debug.Print LineOfText
End Sub

Rick


Well, as written, the regex would retain the C:.

If you wanted to return filename without the C:, it would be a simple
alteration in the regex:

re.Pattern = "([^\\:]*\S)\s?-[^\\]*$"

This is a bit more robust, though:

re.Pattern = "([^\\:]*\S)\s*-[^\\]*$"


--ron