Home |
Search |
Today's Posts |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Ok,
For those following this thread, I now have code that performs the wa I want, but I still would rather do the same solution programicall instead of bouncing between worksheet functions and VBA. Read on. My question for Rob, or anyone else watching, is whether they see a wa to do what I have done programatically instead of using the workshee for part of functionality. As you will note from the explanatio below, I have achieved what I want by placing some text onto th workbook and processing it there with functions and then bringing th text back into the text box....but this slows down the cod somewhat...(in my end solution the user needs to be able to enter a 50 word paragraph into the text box.) To reproduce exactly what I have: (1) Copy this and insert it into range D1:D34: ="" quick brown fox jumped over lazy dog a b c d e f g h i j k l m n o p q r s t u v w x y z (2) Copy the following into range E1:E34 9898 2575 7565 3435 3676 1564 7564 3765 1111 2222 3333 4444 5555 6666 7777 8888 9999 1122 2233 3344 4455 5566 6677 7788 8899 9911 2323 2424 2525 2626 2727 2828 2929 3030 IMPORTANT: Highlight the range D1:E34 and name the range "dictionary" (3) In cell C1 insert this formula: =IF(AND(A1="",B1=""),"*EMPTY*",IF(A1="",B1,A1)) copy it down to cell C50. Name this range "testrange". (4) Create Userform1. Add one text box "Textbox1", and one comman button "CommandButton1". In properties of textbox1, set multline t TRUE. Insert the following code into the Declaration section: _______________ Private Sub CommandButton1_Click() Dim str() As String Dim i As Long, k As Long str = Split(TextBox1.Text, " ") k = 1 For i = LBound(str) To UBound(str) Sheet1.Cells(k, 1).Value = str(i) k = k + 1 Next UserForm1.Hide End Sub _______________ Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger ByVal Shift As Integer) Dim str() As String, strTemp As String Dim lngIndex As Long, Bindex As Long, i As Long, j As Long, k As Long cellStr As Long Dim n As Long Dim test As Long ' If KeyCode = Asc(" ") Then str = Split(TextBox1.Text, " ") k = 1 m = 1 ' Check first letter to last letter, then look to see if string i dictionary On Error Resume Next For i = LBound(str) To UBound(str) lngIndex = Application.VLookup(str(i), Range("dictionary"), 2 False) ' ' If NOT in Dictionary then START PARSE CODE If Err.Number Then Err.Clear MsgBox "Word not in dictionary: '" & str(i) & "' ;Pars Required." For j = 1 To Len(str(i)) strTemp = Mid(str(i), j, 1) lngIndex = Application.VLookup(strTemp Range("dictionary"), 2, False) If Err.Number Then Err.Clear MsgBox "sub-string not in dictionary: " & strTemp Else Sheet1.Cells(k, 2).Value = strTemp k = k + 1 End If Next Else Sheet1.Cells(k, 1).Value = str(i) k = k + 1 End If Next Set rng = Range("testrange") pStr = "" For Each cell In rng ' Look to see of the string "*EMPTY*" is in the cell If cell.Value < "*EMPTY*" Then pStr = pStr & cell.Value & Chr(32) End If Next TextBox1.Text = pStr End If End Sub _______________ -- Message posted from http://www.ExcelForum.com |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
find and replace numeric strings in larger text strings | Excel Worksheet Functions | |||
Parse variable length strings | Excel Discussion (Misc queries) | |||
How to find number of pairs of strings from list of strings? | Excel Worksheet Functions | |||
How can I count strings within strings | Excel Worksheet Functions | |||
Finding strings within strings | Excel Programming |