我有兩個表,我需要用VBA從一個到另一個獲取數據。我有一個代碼,導入數據,並把它們列範圍我需要什麼,但我被困在在格式化它們:來自單元格+其他單元格數據的前三個值VBA Excel
我需要檢查,如果日期列單元格是空的,如果是這樣,不是把日期從其他細胞
If IsEmpty(oldtable.Range("L3", "L10").Value) Then
newtable.Range("J3", "J10").Value = newtable.Rang("E3", "E10").Value
Else newtable.Range("J3", "J10").Value = oldtable.Rang("L3", "E10").Value
End if
需要從號碼+從單元格值前3串在同一範圍內
newtable.Range("O3", "O10").Value = Mid(newtable.Range("M3", "10").Value,1,3)&newtable.Range("N3", "N10").Value
代碼不是爲我工作。 感謝您的支持!
fullcode:
Dim filter As String
Dim caption As String
Dim file As String
Dim oldtable As Workbook
Dim newtable As Workbook
Range("A3:R10").Select
Selection.ClearContents
Set newtable = Application.ActiveWorkbook
filter = "Text files (C:\Excel\file.xlsx),C:\Excel\file.xlsx"
caption = "Please Select an input file "
GREMPG1 = Application.GetOpenFilename(filter, , caption)
oldtable = Application.Workbooks.Open(GREMPG1)
Dim wsheet_new1 As Worksheet
Set wsheet_new1 = newtable.Worksheets(1)
Set wsheet_new2 = newtable.Worksheets(2)
Dim wsheet_old As Worksheet
Set wsheet_old = oldtable.Worksheets(1)
'This is OK
wsheet_new1.Range("C3", "C11").Value = wsheet_new1.Range("C2").Value
'This is OK
wsheet_new1.Range("D3", "D11").Value = Application.WorksheetFunction.VLookup(wsheet_old.Range("E2", "E10"), wsheet_new2.Range("A1:B16").Value, 2, False)
'Empty values stay empty
If IsEmpty(wsheet_old.Range("L3", "L11").Value) Then
wsheet_new1.Range("J3", "J11").Value = wsheet_new1.Range("E3", "E11").Value
Else
wsheet_new1.Range("J3", "J11").Value = wsheet_old.Range("L2", "L10").Value
End If
GREMPG1_wb.Close
End Sub
什麼似乎是問題嗎? – Bond
該代碼不適用於我。空單元保持空白,Mid函數不能以任何形式工作。 – elly
您是否定義了舊錶和新表? – DragonSamu