Comment Code Without Having To Introduce " ' " Before Each Line
Sep 26, 2008
Is there a way to comment code without having to introduce ' before each line? Very much like in C language, we use /* to open comment lines and */ to close comment lines. I know we can use _ [underscore] but I find it not very pratical. Both solutions for comenting in VBA aren't very pratical, specially when copying and pasting coments from a text editor for example.
Adding ' in the beginning of a line converts the rest into comment line. I wonder if there is an easy way to convert a huge area into comment line to try something on code. I couldn't find such an option in the menu.
I have an Excel file with text records, 1000s of lines long Trancriptions of Customer sales reps and Customers, or Distributors. All data is in Collum A.
Each Record has 7-10 Entries ______________________ BILLNUM : 060501 ORIG : 12345678909090 REP : 45672222222222 AREA : LK787878000000 SD : 060401 ED : 062025 COMMENT : CUSOMTER CONVERVERSATION WITH REP C:HELLO R:HELLO C:MAY I HELP YOU R:BALANCE PLEASE etc......................
I know that there is a way to delete macros in a file using another macro in order to save the file as a macro-free copy. I was wondering though if there is a way to comment and uncomment code using a macro, as well. The reason I need to do this is that I have a module that builds Excel files for me using a template, but that template has to have certain lines of code commented first in order for the module to run correctly. After the module is done building the file, I must uncomment those lines manually and was wondering if there is an automatic way to do this.
how to copy the contents of multiple comment boxes and paste in a single comment box.
The big picture is that I have a number of cells with numerical values in and text in comment boxes. I want to be able to click a button to copy the contents of the comment boxes and paste them, along with the numerical value from the cell, into a single comment box, ordered by highest to lowest value within the comment box, then delete the original cells and comments.
I am quite new to VBA but have been coping quite well so far with information of the web and analysing recorded macros.
I have the following line from my code of which I am having trouble with I get an error:
If Left(IRange, 1).Value "1" Then I am trying to find the first string in cell range ...IRange ... I know the Left function = Left(string, length) but can I reference a Range or perhaps cell location within the string argument??? This can be done in excel formulas, but can it be done with VB code??
IRange = Cells (iRow,iCol) and value in cells are Long
My goal is to try and find out how I can use my excel formula:
Left(D3,Find("1",D3)) and impliment this to my above VB line
I have a large formula written in my VBA code (a sumproduct with numerous variables) which exceeds the line length in VBA and therefore a proportion of the code is shown on the next line.
However, the VBA treats this second line as an error (since it sees it as a new line of code which on its own doesnt work) What do I need to do so that it treats the two lines as a single line of code?
This should be a simple one, But I can get it to work. Could someone advise me as to how I can change this line of code to pick sheet(2) as it is now it picks sheet(1) . and throws the formula off. In A nut shell the formula is looking at sheets(1) C3 When it needs to look at sheets(2) C3. I always get messed up with the & and "" and!
I have the following script which will copy data from one worksheet to another sheet. The data in the first sheet is filtered and therefore it is pasting #n/a in the blank cells of the second sheet.
IMPORTANT: I already can do this with multiple lines of code, however just out of curiousity I was wondering if it could be done with the one line of script and to not have #n/a in blank cells.
HTML Code: worksheets("BBB").range("A1:E65000").value = worksheets("AAA").range("A1:E65000).specialcells(xlcelltypevisible)
Need vba code for excel that will auto add a formatted row when a button is pushed? I have the button made, but I need it to move down a row each time a user clicks the add line button.
How do you use the numbering convention for each line??
Private Sub btnShowAllRows_Click() Dim iRow As Integer
125 For iRow = 7 To 30 130 ActiveSheet.Rows(iRow).Hidden = False 135 Next 140 btnShowAllRows.Visible = False 145 btnShowVolChanges.Visible = True End Sub
Worksheets(2).Cells(20, 3) = "=IF(C29=""09"",""09"",IF(C28=""08"",""08"",IF(C27=""07"",""07"",IF(C26=""06"",""06"",IF(C25=""05"",""05"",IF(C24=""04"",""04"",IF(C23=""03"",""03"",IF(C22=""02"",""02"",IF(C21=""01"",""01"",""00"")))))))))" but I can't because I can only have 8 nested IF's.
Is there an alternative way of obtaining the last line of code?
If I number my lines of code and an error occurs, the use of Erl in the VBA will then return the exact VBA line number that the error occurred on. Is it possible to automatically capture or record that same effect when the macro process leaves its current sub and goes to another?
Reason: I'm trying to create a Call Stack that can be reported through an Error Handler that will include the exact location and process that the error occurred to better troubleshoot and understand where and why the error occurred.
The best I can come up with so far is manually putting in bookmarks along way so I know how far along the macro went before the error. From all of my searching I believe retrieving the Excel Call Stack is not possible and so one must be manually created.
Enclosed is an example of what I have so far. It goes through several macros and logs the Call Stack. It’s a work in progress so it is a little sloppy looking but it is functional. If a Sub finishes it is then taken out of the Call stack.
Several "BookMarks" are placed to give an idea of how far along the Macro has gone within that Sub. The Code for the Erl example is:
Sub SampleErrorWithLineNumbers() Dim dblNum As Double 10 On Error Goto PROC_ERR
' Errors if table doesn't exist 20 Select Case Rnd() Case Is < 0.2 30 dblNum = 5 / 0 40 Case Is < 0.4 50 dblNum = 5 / 0 60 Case Is < 0.6 70 dblNum = 5 / 0 80 Case Is < 0.8 90 dblNum = 5 / 0 100 Case Else End Select 110 Exit Sub
Let's say I have a long macro and I want to test some code a ways down in the macro, but I don't want to have to run through all the code to get there, because I already have my Excel spreadsheet set up at the point I need to check and I just want to start checking the code a ways into the procedure.
Short of commenting out all the code above where I want to start, is there another easier way to do this?
Private Sub CommandButton3_Click() Dim MyData Set MyData = New DataObject MyData.GetFromClipboard MyData.SetText Me.TextBox1.Text MyData.PutInClipboard MsgBox MyData.GetText End Sub
I get a debug error on the MyData.PutInClipboard line.
I tried to modify the above code, so it will refer undefined/dynamic data column, but getting an error during execution "Run Time Error - 424:" "Object required"
I'm just trying to add the "=" operator to the below "" operators, as this line of code presently doesn't account for any numeric matches, of which I have plenty, and DO need to account for! Gosh, might someone here know how to integrate such a thing into this code?
I have built a small userform with 3 fields. The macro ran OK first few times. Now, when user enters data in the form and clicks OK nothing happens. I found that repeated clicking on OK or Cancel button on form had no effect. I then observed that VBA editor was open and the yellow cursor was displayed on the first code line under cmdOK_click procedure. The code line was also highlighted in yellow. There are no errors to debug and no break points etc. When I clicked the Run (or Continue) icon from the VBA toolbar, the macro completed OK. Question: Why is the macro pausing on the first line and how can I make it run without pausing for no apparent reason.
I have created an AddIn for a project I'm working on using the 'Open' command in Excel Vb. While this worked perfectly for the file I was testing it on (1,740,754 bytes) it doesn't work on a new file (121,445,125 bytes).
On testing the code, one line at a time, it gets stuck on
Line Input #1, DataLine
The files only contain one line so I suspect there is too much data for the command to handle.
I'm trying to search for a column by looking for a specific column header and then format the entire column in the specific number format desired, but I keep getting an error message with this line.
Code: With Rows("1:1") .Find(what:="Go Live Date").Column.NumberFormat = "m/d/yyyy" End With