正如標題中所提到的,我需要一個與Excel值函數相當的VBA。我的數據集看起來是這樣的:Data set example需要Excel的真正的VBA等效函數
我在找什麼是VBA代碼相當於這個:=Value(A2)+Value(B2)
。這將在列C
輸出必須與該功能相同。對於給定的例子,列C應該看起來像這樣:End product
更重要的是,它只需要在宏運行後在單元格中具有值,而不是顯示值並仍然具有該公式它。
這是我迄今所做的:
For i = 1 To LastRow
strValue = Val(sht.Range("A" & i))
strValue1 = Val(sht.Range("B" & i))
sht.Range("C" & i).Value = strValue + strValue1
Next i
我也試過這個變化,如下表所示,其中一對夫婦:
For i = 1 To LastRow
strValue = Evaluate(sht.Range("A" & i))
strValue1 = Evaluate(sht.Range("B" & i))
sht.Range("C" & i).Value = strValue + strValue1
Next i
For i = 1 To LastRow
strValue = sht.Range("A" & i)
strValue1 = sht.Range("B" & i)
strVal = Evaluate(strValue)
strVal1 = Evaluate(strValue1)
sht.Range("C" & i).Value = strVal + strVal1
Next i
我找不到任何會爲我工作。 C中的輸出結果僅爲9.很確定它將A中的第一個數字加上B中的第一個數字。所以當B中的小時變爲1 C時,顯示爲10.
我也試過簡單:
For i=1 To LastRow
sht.Range("C" & i).Value = sht.Range("A" & i).Value + sht.Range("B" & i).Value
Next i
這只是串接文本格式9/03/15 00:00:00
任何和讚賞所有幫助。如果您可以指引我將正確方向的數值從該數字(即42250.00017)更改爲自定義日期/時間格式'yyyy-mm-dd hh:mm:ss'
,則可獲得獎勵。
編輯:這是我的代碼達到了堅持。其他一切都按照我想要的方式工作,唯一的問題是最後的For
循環。
Sub sbOrganizeData()
Dim i As Long
Dim k As Long
Dim sht As Worksheet
Dim LastRow As Long
Dim sFound As String
Dim rng As Range
Dim sheet As Worksheet
Dim Sheet2 As Worksheet
Dim strFile As String
Dim strCSV As String
Dim strValue As Double
Dim strValue1 As Double
Dim strVal As Long
Dim strVal1 As Long
Application.DisplayAlerts = False
Sheets("all016").Delete
Sheets("Sheet1").Delete
Application.DisplayAlerts = True
Set sheet = Sheets.Add
Set Sheet2 = Sheets.Add
sheet.Name = "all016"
Sheet2.Name = "Sheet1"
strFile = ActiveWorkbook.Path
strCSV = "*.csv"
sFound = Dir(strFile & "\*.csv")
If sFound <> "" Then
Workbooks.Open Filename:=strFile & "\" & sFound
End If
Range("A1").CurrentRegion.Copy Destination:=Workbooks("solar.xlsm").Sheets("all016").Range("A1")
Workbooks(sFound).Close
Set sht = ThisWorkbook.Sheets("all016")
LastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
sht.Range("C1").EntireColumn.Insert
For i = 1 To LastRow
'Code that doesn't quite work here'
sht.Range("C" & i).NumberFormat = "yyyy-mm-dd hh:mm:ss"
Next i
您是否嘗試過使用'Application.WorksheetFunction.Value'? – Dan
試試這個'strValue = Evaluate(「 - 」&sht.Range(「A」&i).Address(1,1,,1))'和'strValue1 = Evaluate(「 - 」&sht.Range 「B」&i).Address(1,1,,1))'然後添加它們。 –
我不認爲你必須評估它們,因爲'.Value2'字段已經有了值。只是簡單的添加,但你有參考範圍的領域。 – nbayly