Question: Vba code as bugs in it. Can you please fix the bugs and leave comments to explain the bugs and what was done to fix

Vba code as bugs in it. Can you please fix the bugs and leave comments to explain the bugs and what was done to fix the bugs with copy code.

Sub ListStates() Dim ws As String, message As String message = "Here is a list of states:" For Each ws In ActiveWorkbook message = message & vbCrLf & "ws.Name" Next MsgBox message, vbInformation, "State list" End Sub

Sub StateSearch() InputBox "Enter a state you'd like to search for.", "State search" FindState state, isFound MsgBox "State was " & isFound, vbInformation End Sub

Sub FindState(state As String) Dim isFound As Boolean For Each ws In ActiveWorkbook If ws.Name = state Then isFound = True Exit For Else isFound = False End If Next End Sub

Sub CountSales() Dim state As String, salesRep As String state = InputBox "Enter a state" salesRep = InputBox "Enter a SalesRep" On Error GoTo NoSuchState With Worksheets(state).Range("B3") Count = 0 For Each cell In Range(.Offset(1, 0), .End) If cell = StateRep Then Count = Count + 1 Next End With MsgBox "SalesRep made " Count " sales in " state, vbInformation NoSuchState: MsgBox "The state " state " is not one of the worksheets.", vbInformation End Sub

Sub TotalSales1() Dim lastDate As Date, total As Currency MsgBox "You'll now be asked for a date. Then the total of all " _ " sales up to that date will be totaled.", vbInformation , "Purpose" lastDate = InputBox("Enter the last date for the total."),"Last date" total = 0 For Each ws In ActiveWorkbook With Worksheets("ws").Range("A3") Do Until .Offset(i, 0) = "" If .Offset(i, 0) <= lastDate Then total = total + .Offset(i, 2) Loop End With Next MsgBox "The total of all sales through " & Format(lastDate, "1/1/99") is " _ & Format(Total,$#,##0), vbinformation, "Sales Total" End Sub

Sub TotalSales2() Dim states() As String, reps() As String, repName As String, _ nStates As Integer, nReps As Integer, newName As Boolean, _ ws As Worksheet, i As Integer, j As Integer nStates = 0 nReps = 0 For Each ws In ActiveWorkbook ' Add this sheet's state to the States array. ReDim states(nStates) states(nStates) = ws.Name nStates = nStates + 1 ' Go through all of the names in this state's worksheet. For each name, check ' if this is a new rep not already in the reps array. If it is, add it to ' the array. With Worksheets(ws).Range("B3") Do Until .Offset(i, 0) = "" repName = .Offset(i, 0) newName = True If nReps > 0 Then For j = 1 To nReps If repName = reps(j) Then newName = False Exit For End If Next If newName = True Then ReDim reps(nReps) reps(nReps) = repName nReps = nReps + 1 End If End If Loop End With Next ' Show the user form and capture the user's selections in the variables ' selectedState and selectedRep. frmInputs.Show ' Find the total sales for the selected rep in the selected state. total = 0 With Worksheets("SelectedState").Range("B3") Do Until .Offset(i, 0) <> "" For j = 1 To nReps repName = .Offset(i, 0) If selectedRep = repName Then total = total + .Offset(i, 1) Exit For End If Next Loop End With MsgBox "The total sales for " & selectedRep & " in " & state & was " _ Format(Total,$#,##0), vbInformation End Sub

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!