我打开了两张excel表,并根据所有三列相似的列对它们进行了排序。代码的那部分工作并且很好。现在我需要在两个不同的工作簿中引用两个单元格并减去它们。我有一组很复杂的循环,但我不断出错,所以我把它剥离到一个基本的减法函数。现在使用此脚本,消息框显示“mprice_delta”而不是数值。我不知道我做了什么,但它工作了一次,然后又恢复了显示文本答案而不是数字。
Dim objTPG, objTPG_prior
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
objXL.DisplayAlerts = False
Set objTPG = objXL.Application.Workbooks.Open(FilePath & "TPG.csv")
Const xlAscending = 1
Const xlYes = 1
Set objTPGSHEET = objTPG.Worksheets(1)
Set objRange = objTPGSHEET.UsedRange
Set objRange2 = objTPGSHEET.Range("E2:E9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
Set objTPGPRIOR = objXL.Application.Workbooks.Open(FilePath & "TPG Prior.csv")
'REMEMBER TO MAKE SHEETS RUN IN BACKGROUND
Set objTPGPRIORSHEET = objTPGPRIOR.Worksheets(1)
Set objRange = objTPGPRIORSHEET.UsedRange
Set objRange2 = objTPGPRIORSHEET.Range("E2:E9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
Set objEXPO = objXL.Application.Workbooks.Open(FinalExposure)
Set objEXPOSHEET = objEXPO.Worksheets(1)
Set objRange = objEXPOSHEET.UsedRange
Set objRange2 = objEXPOSHEET.Range("I2:I9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
Function mysub(x,y)
mysub = x - y
End Function
Dim mprice_delta
mprice_delta = mysub(objTPG.Cells(2,10).Value, objTPGPRIOR.Cells(2,9).Value)
MsgBox(mprice_delta)
答案 0 :(得分:0)
objTPG是一本工作簿
您需要使用工作表来访问单元格。
也许是objEXPOSHEET和objTPGSHEET?我不太确定你的代码