View Single Post
  #11   Report Post  
mikerickson mikerickson is offline
Junior Member
 
Location: Winters CA
Posts: 22
Default

Split isn't supported on my Mac Excel 2004 either. This is what I use. It isn't a complete emulation, but it returns a 0-based array of strings, with an optional delimiter that defaults to " ".
Code:
Function split(ByVal inputString As String, Optional delimiter As String)
Dim outRRay() As String
Dim point As Long, cutPoint As Long
If delimiter = vbNullString Then delimiter = " "
inputString = inputString & delimiter
ReDim outRRay(0 To ((Len(inputString) / 2) + 1))
point = 0
outRRay(0) = vbNullString

Do Until Len(inputString) = 0
    cutPoint = InStr(inputString, delimiter)
    outRRay(point) = Trim(Left(inputString, cutPoint - 1))
    inputString = Mid(inputString, cutPoint + 1)
    If outRRay(point) < vbNullString Then point = point + 1
Loop

If point = 0 Then point = 1
ReDim Preserve outRRay(0 To point - 1)
split = outRRay
End Function
Quote:
Originally Posted by Dave Peterson View Post
Split was added in xl2k, so you should only have to modify the code if the
person is using xl97 (or earlier).

(Another approach would be to loop through the printarea range areas.)

mikerickson wrote:

I think these modifications will adresss those issues.

Code:
--------------------

Dim pValues() As Variant
Dim pAddress As Variant
Dim i As Long
pAddress = Split(ActiveSheet.PageSetup.PrintArea, ",")
ReDim pValues(UBound(pAddress))
For i = 0 To UBound(pAddress)
pValues(i) = Range(pAddress(i)).Formula
Next i
ActiveSheet.Cells.ClearContents
For i = 0 To UBound(pAddress)
Range(pAddress(i)).Formula = pValues(i)
Next i
--------------------

If your version is before Excel 2003, pm me and I'll send you a Split
function.
Dave Peterson;514206 Wrote:
And watch out for multiple area print ranges.

mikerickson wrote:-

True. It sould be .Formula not .Value

Dave Peterson;514023 Wrote:-
Watch out for formulas!

mikerickson wrote:--

This works for me.
Code:
--------------------
Dim pValues As Variant
With ActiveSheet
pValues = .Range(.PageSetup.PrintArea).Value
.Cells.ClearContents
.Range(.PageSetup.PrintArea).Value = pValues
End With
--------------------
er;513921 Wrote:-
hallo,
how can erase the empty cells, outside print area?-

--
mikerickson--

--

Dave Peterson-

--
mikerickson-


--

Dave Peterson


--
mikerickson


--

Dave Peterson