I am using the code below to import a fixed-length text file into Excel. As the macro is written, it imports starting at the first line of the text file. How do i tell it to start importing at line 1000 and above?
How to insert the column dividers manually--for importing a fixed-width text file into excel? The files I'm having to import consist of dozens and dozens of columns.
I want to create a 6th column that looks to the columns on the left with data in ti and concatenates all data in the 5 columns and puts it into one cell in the 6th column however put a space between each break of data so that it can be distinguished which bit of data was in what column previously.
The challenge is the new 6th column can only contain 30 characters - When it exceeds 30 characters then create a 7th column and put the rest of data in the 7th column, again the 7th column can only have 30 characters so if exceeds this then put the remaining characters in a 8th column
There will never be more than a total of 90 characters in the original 5 columns so there will only need to be scope for a maximum of 3 additional columns
So for example
Column A had two words in it that totaled 20 characters (the space between the two words is also counted as a character) Column B had two words in it that totaled 20 characters (the space between the two words is also counted as a character) Column C had a word that contained 10 characters Column D had a word that contained 5 characters Column E had a word that contained 10 characters
Then the result would be
Column F would only have the data originally held in Column A (because it can't include Column B's data as this would exceed the 30 characters) Column G would have data that was originally held in column B and column C - with a space between B and C data Column H would have data that was originally held C, D and E - with a space between C, D and E data
Another point to consider is if in one of the orginal 5 columns had say 3 words in it and lets say the 3rd word is the word that exceeds the 30 character limit, then the whole of the third word is to be carried oved to the next new column, I can't have words cut in hlaf with one half in Column 'F' and the other half in Column 'H' for example.
I am attempting to modify VBA code from [URL] .....
The section of the code I want to modify is below dealing with importing selective text. The original function returned a "False" if the line contained a keyword specified in the Array function. I have reworked it so that it shows a "True" if the line contains a keyword specified in the Array function.
My only problem is that it only does it when the keyword appears in the beginning of the line, as it uses the "Left" operator in looking at line. How do I configure the function so that it returns a "True" if the keywords appears anywhere in the line?
I am trying to create a string of text that grabs info from other cells, which is easy so for example
=A1&A2&A3
would grab all the info from the 3 cells and merge them to create a string, but what I want to do is create a prefixed length.
Lets say A1, A2 and A3 would equal 10 characters in total but B1, B2 and B3 would equal 7 characters, these would be different lengths. so for a visual description I would like them to appear like this
At the moment
01MAIN-HELLO 01DESSERT-HELLO WORLD
Would like
01MAINXXX-HELLO 01DESSERT-HELLO WORLD
This would make both strings the same length and would make it easier for me to export to a custom file that needs a certain length prefix.
I need to expand my columns to different character widths (fill with blanks) for an Import into an other program, I state the No. of characters in that column and Import. Trim does the complete opposite to what I require, does anybody know if the function exists and if so the syntax for it.
Excel 2007-2010. I'm using match(string, range,0) but there must be a limitation on the length of the string since I know the string is in the range but it returns #value as if it is not found. Is there a VBA solution to get around this without having to loop/cycle through the entire range?
I wanted to see if there is a VBA code to do the following :
a) Select a TabText Delimited file based on a criteria b) Import the Selected Data to Excel
I have the vba code where I can open the tab text delimited file in excel, use a selection criteria and then copy the data into excel. But I am having problems with the case where the Tab Text Delimited file exceeds the row limit that excel currently has and wanted to see if the data import can be done without opening the text file into excel at all.
Getting some web page data into Excel 2010 using VBA. My scenario however is set up with the following titles in cell A1, B1, C1, D1 and E1 : POST CODE, OUTLET, ADDRESS, TELEPHONE, EMAIL
The result I want to achieve is I enter a post code into cell A2 for example, Excel then uses IE to navigate to the relevant web page as defined in the VBA code. I then want the following to happen:
The InnerText of the web page's h1 tag is then inserted into the OUTLET cell (B2)The first instance of the p tag is then inserted into the ADDRESS cell (C2)The second instance of the p tag is then inserted into the TELEPHONE cell (D2)The third instance of the p tag is then inserted into the EMAIL cell (E2)
All instances of the p tag are contained in a div element called div class="adBox_content" . There are also 5 other DIVs above that DIV in the hierarchy.
Using the YouTube tutorial link, the method has worked for me using the getElementsByTagName("h1").innerText
However, when I try adding a second getElementsByTagName("p")(01).innerText the whole thing fails.
So I'm left with two problems; I can't make the VBA get more than one element at a time from the page, I can only either have the h1 or the first instance of the p tag. I've tried all the getElementBy methods and none of them seem to work in getting the second and third instances to show.
I also need the code to make the data be put on the same row ONLY as where the post code was entered. In this scenario for example of entering a post code into A2, the OUTLET needs to land in cell B2 only, ADDRESS C3 only etc.
By following the youtube tutorial above by giving the cells names to refer to in the code, the data ends up being inputted in all further rows with identical cell names. I need it to not do that.
The code is needed for around 300 rows of post codes that will be entered and refreshed every week or so.
I need to find text within middle of a string. Character before required text is say AAA Character after required text is say BBB Text required can vary in length. Extract text and place in another column.
All text in a single column, required text not in every line. but does repeat.
I have about 20 choices I'd like a user to select from and have the text output to a single cell.
Just create a Data Validation List? Yeah, but that only allows you to select ONE of the items in the list -- I want to select as few as zero and as many as all 20, combining the resulting text into a single string - space or comma delimited.
My first thought was checkboxes, but all I can seem to figure out is how to get ONE of the results into the cell, meaning I'm better off with the Data Validation List because it's easier.
Especially since I need to repeat this for as many as 200 or 300 lines,
I am having a problem importing fixed width text files with VBA. I created a user form for a dept to import a number of reports we get as text files into Excel. I imported each line into 1 cell (Column A) in Excel and then used mid functions to split out the columns. Everything works fine on my PC. However, when I use other PCs to import the same files (either off the same shared drive or the PC hard drive) the columns are not splitting in the correct places. Does anybody know what could cause this. Since the columns are splitting based off a fixed number of characters, I'm assuming Excel is somehow distorting a character count while opening the text file. I did notice that if I try to import text files saved on one of our shared drives, they do not import correctly on my PC either. However, if I copy and save the same text file to any of the other shared drives or my PC, it imports with no problems.
I need the different categories to be separated into separate columns, but they do not appear to be separated by anything useful or a fixed width. Not only that, but the last few columns were moved onto a second line when I copied the data into Excel for some reason. The data originally came over in an Adobe Acrobat file. This is what the final product should look like: ....
I've set up a filing system which saves sheets/ workbooks based on the value of a cell - Range("B1") Everything works great apart from when ThisFile String length exceeds 31 characters which you may know is the max useable character length for a sheet name - I had no idea! 8-0
Is there a way i can check if string length exceeds 31 characters then, if it does, shorten it to 31 characters?
What formula can I use to get BOB SMITH. The length of the name will vary. The number will change, but will always be 4 digits and will have the brackets. [XXXX]
i have tried to create a userform thru which data is to be entered. so that the data will be printed on a worksheet. here there are few text boxes, in which the number of digits should be equal to 14. after filling the userform when i click the print button if it is less than or more than 14 a pop up msgbox should be displayed with OK button and the cursor should go back to that particular text box. i have written the following code, but it has a problem. even if the total no of digits are 14 the msgbox is displayed.
say the text box name is Roll no
If txtRollNo.MaxLength 14 Then MsgBox "Roll No should be of 14 digits", vbInformation + vbOKOnly txtRollNo.SetFocus Exit Sub End If
My worksheet contains data with the reaction times on a psychological test. Each respondent in the test has 280 rows in my excel sheet.
The 'perfect' length of the row, is from A to M. When an error is made in the test, the length of the row will increase. So the error length can be A to AA.
For me it is important to analyse the error. So I would like to give a perfect row length, the value 1, and an error row length a value 2.
So, in conclusion:
If: Cell length = A1 - M1? --> Copy A1 B1 C1 (A B Cof that row) to Sheet3, and give D1 in sheet 3 the value 1
Cell length >= A1 - M1? --> Copy A1 B1 C1 (A B C of that row) to Sheet3, and give D1 in sheet 3 the value 2
I need to fixed width-text to column macro and found a reply in the forum.
However, when I apply the macro, the result of zeros in front of figures disappear since the format of value in splitted column doesn't predefined as text
e.g. sample text to split to column: 000122042009ABCDEFG00567
Required result: 0001|22042009|ABCDEFG|00567
when running below macro; result shows: 1|22042009|ABCDEFG|567 (Beginning zeros figures of the first and last column disappear)
I need to parse out the different parts of Column M.
In Column R -- "Close Date", I'm successfully using: =LEFT(M2,FIND(" | ",M2)-1)
...to extract the close date of the donation.
In Column S, I want to list the donor name--which is all of the text after " | ", and before the "-".
I don't need anything after the hyphen, and fortunately in this data, no one's name has a hyphen in it.
The Close Date is working fine for the LEFT and FIND functions, but for the life of me, I can't seem to get MID to work for the variable-length text. The text will always start in the same position -- 14, as the date and delimiter are standardized. And the last 5 characters of the text are not variable in length, so they can be cut out completely.
How do I use MID to extract everything starting at position 14, and stopping 5 characters short of the end of the text?
I'm trying to avoid using merged cells or text wrapping with altered row height to display some text in multiple rows - similar to using centre across selection to have a header across multiple columns without merging. The guys that use the sheet type a comment that is relevant to five rows and the easy solution here would be to just type the first portion of the comment in the first row (about 30 characters will display in the column width available), then put the next 30 characters in the next row and so on but the guys keep getting lazy and merging the cells so they can type the comments more easily. I can lock the sheet or force validation but I think there's a better solution.
I can effectively "wrap" the text across the five rows the header is relevant to by using a formula to pick up everything except the first 30 characters of each cell. Ie if they type whatever they want in cell B16 then I can use this formula to break it in to 30 character lengths to "wrap" it in to the next four rows:
=IF(LEN(B17)>30,RIGHT(B17,(LEN(B17)-30)),""),
And I'm sure it would be easy enough to use search with the formula to break it where there is a space in the text so partial words don't flow over.
BUT because the text ends up slightly different widths I want to use formats to force only 30 characters to display (whilst keeping the remainder of the text string intact). I can't figure out the syntax to format only 30 text characters to display but you can easily do it with numbers and dates and so on.
I use VLOOKUP with text (to return comments made by people that I have copied in another sheet). The problem is that sometimes, it doesnt copy the whole comment. Apparently there is a limit for the amount of text VLOOKUP can copy: after a LEN() test I have found that I cant copy texts longer than 255 characters.
Is there a simple way to make the VLOOKUP work even if the text is more than 255 characters long ?
I am having difficulty with creating an IF formula that will only show 9 digit numbers. If the cell the formula is looking at has less or more than a 9 digit number in it, or the cell ha no value, the result will be blank.
I have a cell with 200+ character, I only want the 40 first character is there a function that will give me only those 40 first character or do I have to use a "=len" and manually remove the extra characters?)
I'm trying to produce a fixed format pivot table in Excel 2010. Normally I'd just construct a manual table using COUNTIFS, SUMIFS etc, howver, for this exercise the requirement is to be able to click on any field and have a tab pop up with the relavent data a la Pivot Table. But....I need the Pivot table to have a fixed format (which I can do with 'Preserve cell formatting on update') and to have all of the rows and columns in irrespective of whether there is data or not (i.e. if I haven't sold any apples in June, I still want the 'Apples' field to appear, just with a value of zero). I had assumed that the option I needed was 'Show items with no data on rows/columns' but these options are greyed out. I've tried right-clicking on the whole table, on individual fields and on labels but still get the same greyed out options.
Is there any way I can retain all of the rows and columns?