View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Graysailor Graysailor is offline
external usenet poster
 
Posts: 2
Default Quote marks in Formulas passed from VB Script in Excel

Just in case someone needs to know how - I figured out how to do it:
Sub CalculateTurnover()

For n = 2 To 5392
If (Cells(n, 1) = Cells(n + 1, 1)) And (Cells(n, 2) = Cells(n + 1, 2))
And (Cells(n, 3) = Cells(n + 1, 3)) Then
Rem MsgBox ("Duplicate Date & Room & Employee in " & Cells(n + 1,
1).Address & Cells(n + 1, 2).Address & Cells(n + 1, 3).Address)
Cells(n + 1, 6).Formula = "=TEXT(" & Cells(n, 4).Value & "-" & Cells(n
+ 1, 5).Value & "," & """h:mm""" & ")"

End If
Next n
End Sub


"Graysailor" wrote:

Interesting one. I have a calculation subroutine that goes row by row to see
if there are any matching records that have three same fields of information
in them. If they do then it tries to replace the value of the last record
with a formula that will calcuate a difference between two times.
Unfortunately I don't know how to pass the " marks in the
TEXT(CELL1-CELL2,"h:mm") formula. Or I could try calculating the time
difference in the routine and just passing the value, but I don't know how to
use an excel function in a VB subroutine (the problem is that the values are
TIMES in the cells to be calculated). It's Friday, I'm toast.

Sub CalculateTurnover()
For n = 2 To 5392 (my row range)
Rem - see if date, employee and room match (columns 3,4,10) with the
following row
If (Cells(n, 3) = Cells(n + 1, 3)) And (Cells(n, 4) = Cells(n + 1, 4)) And
(Cells(n, 10) = Cells(n + 1, 10)) Then
Rem - if so put formula to calculate time difference and store it into
column 12
Cells(n + 1, 12).Formula = "=TEXT(" & Cells(n, 9).Value & "-" &
Cells(n + 1, 5).Value & ',"h:mm")'
End If
Next n
End Sub