Jumps To Another Function While Stepping Through Code
Jul 12, 2006Whilst stepping through code in any new sub/ function that I create in VBA, VBA Editor (seemingly arbitrarily) jumps to a line in a completely different function.
View 4 RepliesWhilst stepping through code in any new sub/ function that I create in VBA, VBA Editor (seemingly arbitrarily) jumps to a line in a completely different function.
View 4 RepliesWe have had a macro running for a few years (Excel 2007 now, but started in 2003) that imports about 35 text files into separate sheets, creates a calculated SUM field for each sheet and copies that value to a title (or summary) sheet. We use this 2 to 4 times per year at inventory time, copying to a new file and deleting the old data before running the macro. The imported files initially create new workbooks, but the data is copied to the initial workbook into a distinct sheets for each file.
Recently (well, last August) this macro started hanging after importing (Workbooks.OpenText) a number of files, and not necessarily the same file every time (on repeated runs.) While trying to figure out the problem, I have now managed to get it to hang every time on the first file! However, if I am stepping through in the debugger it continues past the OpenText command and on F5:Run/Continue will then continue processing the rest of the files normally. If I delete the first file before running the macro, it then hangs on the second file instead.
Without debugging, the first file will import, display on-screen, and there it stops. If I put a break-point on the very next instruction after the import, that break-point is never reached. THINGS I'VE TRIED:.......
I'm having trouble using the worksheet copy command in a VBA subroutine. I have the following line in my code:
[Code] ........
When I step through my code and execute this line, the sheet is copied as expected and put in the correct place, but then instead of the next line of code being highlighted, the pointer jumps to the first line of a function (in a different module) in my code.
I do those things, I set every object = nothing... I even moved them up to right after I use the object. When I open the workbook, my process's shows excel at 38000K. my first go of running code, stepping thru is great... I watch my process and see that I get up to 78000K... I then exit my code, properly... and the process goes only down to about 50000K. If I run it a 2nd time excel process show almost a 100000k and stepping thru is slow, slow motion... a 3rd time and I am at 120000k. I am setting everything to nothing and can't figure it out... I have done bigger projects with more forms, recordsets, collections and never have had this problem.
View 2 Replies View RelatedWhen stepping through my macro it moves through each line of the code showing me the code as it steps through. Is there a way to step through and see the results of the code as it is going through. I have an "IF THEN" statement in the macro that is not giving me any results so I think I must have an incorrect reference in the code, but I can't see it. I think if I could watch what it is supposed to be doing as I step through I might be able to find the error.
View 4 Replies View RelatedI have just written a macro to validate/clean up some data which I get on a monthly basis. Some of the columns come from a pdf file and thus excel recognises these as strings. I have written some code that would convert this string to an integer which runs fine when I step through the code. However when I run the macro from a button the number value goes from e.g. 5000 to 0.
The code is below:
VB:
Sub Condition2()
For k = 8 To LastRow
Worksheets("Bordx Format").Cells(k, i - 1).Value = CDec(Cells(k, i - 1).Value)
Next k
End Sub
I run this code in my workbook and it seems to work but i would like to do same kind of jumps by clicking on a different cells and cant seen to figure out how i can add more of these function.
View 2 Replies View RelatedI have some code which steps through a range of columns from A to Z ( using Chr(asc(col))+1 as the stepper.
This works fine until it encounters col AA then fails - I have added the function that does this - can you help me get beyond col Z?
Function findcol(strTitle As String, ws As Worksheet)
If Left(strTitle, 1) = "0" Then
strTitle = Right(strTitle, Len(strTitle) - 1)
End If
col = "A"
findcol = ""
While ws.Range(col & "1").Value <> "" And findcol = ""
If ws.Range(col & "1").Value = strTitle Then
findcol = col
End If
col = Chr(Asc(col) + 1)
Wend
End Function
I have a very simple macro that copies data from one worksheet to the other. This macro worked fine in Excel 2007. I have since migrated to to 2013. The newly arisen problem is that when I run the macro, the data is not copied to the 'Previous Part Data' worksheet. However, if I step through the code line by line, it works fine.
Here is the code:
VB:
Sheets("Current Part Data").Select 'Select the 'Current Part Data' worksheet
'Copy the data to the 'Previous Part Data' worksheet then clear the data
Range("A4:V" & CurrentPartDataFinalRow).Copy
[Code]....
I have two questions:
1. Why did this work in 2007 and not in 2013?
2. Is there something I can do to get rid of the sheet selection statements to avoid cluttering my code?
I have excel 2007. I have a workbook with 2 tabs set up as follows:
Tab ATab B
Tab A contains a column with the source data, which will be constantly overwritten
Tab B has a row which references the data in tab A
I would like to copy the reference formula in Tab B down for say 100 rows, but when I use the fill tool, it automatically moves the reference cell up one. I want it to remain the same as the original.
E.g
Tab B, Row 1
ColA = Tab A, Row 1
ColB = Tab A, Row 2
ColC = Tab A, Row 3
When I fill copy the above; on Tab B, Row 2, the formula changes to ColA = Tab A, Row 2, ColB = Tab A, Row 3 etc. I would like them to remain as ColA = Row 1, ColB = Row 2 etc.
I will then use Tab A to input each rows data in Tab B, having converted the previous row into just text so it doesn't change with each update.
In column A in sheet 1 I have a list of ID (starting in cell A2), the Id's are repeated and a new Id first appears in cell A30, repaeting the pattern the next new Id is in cell A58. This goes on in the pattern to around cell 44,000. All I want to do is write a formula in another sheet that enables me to have the cell value of A2 on the new sheet and in the next row of the new sheet to have the value of A30 and so on, until I have all the id's individually displayed on the new sheet.
After that I have data from the rest of the row (A2,B2,C2 etc) of sheet 1 in the following cells of the new sheet. After that I'm transposing data from column H of sheet 1 so it appears in the row of the new sheet against the ID's.
Sheet 1
Column headers> (A)Patient name, (B)number, (C)gender, (D)DOB, (E)Sample ID, (F)Hospital, (G)blood test parameter,
(H)Result Row 2 columns A to F repeate to Row 29 then next patient details list. These I want as Row 2 columns A to F in new sheet then the results transpose from column H sheet 1 to new sheet row 2 columns H to AI. (the results I have working with transpose)
When I Step through (Using the f8 Key) the below code -- Comments Explain my problem/Question
Code:
Sub SetUpTable()
Worksheets("Sheet1").Activate
Application.Calculation = xlCalculationManual ' Without entering this line the Macro in the next line or two), jumps to and begins running a UDF in a VBE ADDIN
'Module marked as Volitile
For TheYear = 1 To 5
Cells(1, TheYear + 1).Value = 1990 + TheYear
[Code]....
The spread sheet I have written reaches a point, where I want the "ENTER key depress" to jump to a cell to the right instead of the cells in the same column lower in the sheet, is there a way to do this?
View 9 Replies View Relatedwe would use a byte data type as a counter in a For Loop, but just today I have been having trouble with this. When I try to count backwards with " Step -1" I get an "error 6: overflow" on the FOR LOOP line. When I count forwards it works fine.
For example ....
I have a system running Windows 7 Professional (32 bit) and MS Office 2010.
In Excel 2010, I have a spreadsheet that contains several hundred rows of data. When I cut and paste a section of data, Excel jumps to the top of the spreadsheet. This does not happen when I copy/paste, just cut/paste.
I have a macro that calls 3 other procedures during its run. I have the positon set in the UpdateIndicator sub
With ProgressIndicator
.Top = Application.Top + 300
.Left = Application.Left + 400
end with
and the Userform StartUpPosition property set to 0 - Manual (though I did experiment with the other settings as well.
The issue is that when the series of subs are running, the Indicator jumps and shifts (by 10 or so pixels down and right) and sometimes blinks off completely as each new sub is being called and subsequently returns to the initial macro.
It is accurate and does what it's supposed to do, I just find it annoying and that it probably looks a bit unprofessional (and unstable) to the eyes of some coworkers who use the macro as well.
I have 2 sheets in a workbook where i would like cell G8 on sheet 1 to equal the value on A11 sheet 2 & G9 to equal A12 and so on down the sheet. The problem is that G8 are 3 merged cell so every time I try to use autofill the reference number jumps by 3. The formula in cell G8 is
View 3 Replies View RelatedI'm trying to double-click a cell to edit the contents, and I am off a few pixels, it treats the double-click as a double-click on the cell border, not the cell contents, and the focus jumps to another cell in the direction of the border instead of going into edit mode. The effect is as if I had pressed Ctrl and the arrow in the direction of the border I clicked on.
The only way I've found to disable this is to turn off the option "Enable fill handle and cell drag-and-drop", but unchecking that also disables actually useful things, like dragging the corner of a formula call to copy it down, etc.
Is there a good way to disable this cell jumping when I accidentally double-click a cell border?
I have a project where we need to write vba code for an IRR and Payback function.
View 13 Replies View RelatedI am trying to use a cut and paste within a macro.
I have code working fine if I do a copy and paste which is as follows:
Aggre ABC1Brand Sales 2A5 3B 2 4C7 5A1 6D1 7 8Above are my data 9 10Brand Sales 11A6 12B 2 13C7 14 15Above is the result I want. 16 17 Excel tables to the web >> Excel Jeanie HTML 4
The code instead of Vlookup that I'm using at the moment. It takes too long if you have 40,000 to 50,000 rows of data.
The data that I have is something like the sample bebow:
Col A from A1 to A15 with numbers like:
20000000
20000001
20000002
20000003
20000004
20000005
20000006
20000007
20000008
20000009
20000010
20000011
20000012
20000013
20000014
Col C from C1 to C10 with numbers like:
20000000
20000001..............................
I am trying to do is look at the first two digits of the number in column c (Range c5:c5000) if the number starts with 01 then I need the formula in column g = f5*12 if the number is 03 then I want the formula to be g=f5*24 I have several of these "cases" or "if" to put in can someone get me going a little further
Here is what someone gave me to work with but I'm having troubles getting it to work...I get a name error in the cell and I cant use this they way it is because the code needs to go into the sheet mod with a bunch of other code.Also when I use the Option Explicit the rest of my code wont work.
Option Explicit
Function re(Cl As Range, Src As Range)
Dim i As Long
Select Case Left(Cl, 2)
Case "01": i = 12
Case "03": i = 24
End Select
re = Src * i
End Function
=re(C5,F5)
I am trying to use a dynamic range in VBA. But I am getting compile error.
Range("D19:G19").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("D19").Offset(0, 0, _
Application.WorksheetFunction. CountA( activesheet.name!Master)) , 3)
In the above code Master is a dyanmic range. I need to autofill the copied data in the 3 coloumns.
I have an Excel sheet with a few thousand rows which I would like to filter by a column with the name TrackingID. This column contains values like:
12AA1
23452BA2
234AA1
345635CA2
...
I would like to filter this column by the third character from the end (which is always a letter from the range [A-Z]). In the example above, this would be:
A
B
A
C...................
I am writing some code where one column is selected and a value is searched for in that column. If found the code continues on its way manipulating the data. The issue is that the value being searched for will not always be there which results in an error. Is there a way that I can just tell the macro to continue running if the value is not found.
Columns("V:V").Select
Selection.Find(What:="1", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Rows(ActiveCell.Row).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
On a second question is there some code I could write that would select all the rows with the number 1 in column V and delete them rather than doing the way I am here?
I've been trying to put together a function in excel which will make it simpler and a bit clearer to produce the coefficients of trend lines in cells. I want to produce an excel function like SLOPE and INTERCEPT but for exponential, power and logarithmic trendlines. For example, I can produce the coefficients for an exponential trendline like this:
Code:
=SLOPE(LN(K2:K11);J2:J11)
=EXP(INTERCEPT(LN(K2:K11);J2:J11))
Ideally, I want to be able to do so without the need to convert the terms with LN function, and be able to replace it with a new function that deals directly with an X Range and a Y range
I've produced the following code:
Code:
Function PowerSlope(YRange As Range, XRange As Range)
For Loops = 1 To YRange.Count
YRange.Value2(Loops, 1) = Log(YRange.Value2(Loops, 1))
Next Loops
PowerSlope = Application.WorksheetFunction.Slope(YRange, XRange)
End Function
However, this causes Excel to crash and shut down (not the macro itself, but the entire program). I can't even get the function to run to a break point in the first line before the crash happens. I'm able to remove the FOR ... NEXT loop and use the function to directly return the result of the linear slope, so I'm confident the issue is not in that part of the code.
I am having problems fixing my function code so that instead of appending myDate with (1) (2) (3) if 3 occurences of the date already exist it just appends it with (3). I know it has to be something simple but I know I am doing something wrong. Thanks for helping a beginner out.
Sub ImportSheets()
Dim fName As String
Dim WB As Workbook
Dim myDate As Date
fName = Dir("N:ENGBRANDON*.csv")
Do While fName ""
Workbooks.Open fName
Set WB = ActiveWorkbook
'Copy first sheet to this workbook
With ThisWorkbook
I have values that I want to color code in my table. Originally I was tagging them as numbers, but instead I need them as colors.
Function conversion(pVal As Double)
If pVal > 0.05 Then
conversion = "1"
ElseIf pVal > 0.001 Then
conversion = "2"
ElseIf pVal > 0.0001 Then
conversion = "3"
ElseIf pVal > 0.00001 Then
conversion = "4"
End If
End Function
Now I want instead of conversion = "1" etc to be
Function conversion(pVal As Double)
If pVal > 0.05 Then
(make white)
ElseIf pVal > 0.001 Then
(make brighter blue)
ElseIf pVal > 0.0001 Then
(make green)
ElseIf pVal > 0.00001 Then
(make navy blue)
End If
End Function
I want the text and cell the same color (number and cell so the number disappears so that I just have a colored cell but the value is still there if I want to look at it).
I am trying to write a function in excel to use the worksheet function "small" In the vba immediate window it doesn't return anything and in the spreadshhet I get a # NAME? error when called in a cell the code is below.
Sub UseFunction()
Dim myRange As Range
Dim answer As Integer
Set myRange = Worksheets("Sheet1").Range("A1:F6")
answer = Application.WorksheetFunction.Small((myRange), 1)
MsgBox answer
End Sub