[英]How can I keep the date format from a VLookup returned value?
我有一張混合格式數據(日期、雙精度、字符串等)的工作表。 我在 lookup_range 中搜索值 (my_index),我想檢索數據以更改其他工作表中的單元格。 它工作正常,但是當 VLookup 返回的值是一個日期並且我將它設置為另一個工作表時,它會丟失其日期格式。
Dim lookup_range As Range
Dim my_index, my_value As Variant
my_value = Application.VLookup(my_index, lookup_range, num_col, False)
Sheets(3).Cells(num_row, last_col_s1 + num_col - 1).Value = my_value
因此,當 lookup_range 中的數據為02/05/2014
, sheet-3 中顯示的數據看起來像41761
。
我需要在lookup_range中保留數據的原始數據格式。
VLOOKUP
不關心它返回的數據的格式——它返回數據,而不是格式。
確保與源格式相同的唯一方法是手動或以編程方式復制/粘貼該格式。
用這個
Sheets(3).Cells(num_row, last_col_s1 + num_col - 1).Value = cdate(my_value)
我遇到了同樣的問題,只是將 VLOOKUP 單元格重新格式化為日期時間格式。 那解決了我的問題。 我不確定日期時間如何轉換為數字,但確實如此。
我遇到了同樣的問題。 vlookup 后,將格式更改為“ShortDate”格式。 這會給你你正在尋找的東西。
Excel公式:
=TEXT(VLOOKUP(Lookup_value,table_array,col_index_num,0),"dd-mm-yyyy")
VBA :
Sub vlookup_code()
Dim table_rng As Range
'FOR THE TIME BEING GIVING A LOOKUP VALUE
look_up_value = "sekar"
'SETTING THE TABLE ARRAY RANGE
Set table_rng = Sheet1.Range("C3").CurrentRegion
'SINCE VLOOKUP WILL GIVE AN ERROR, IF THE LOOKUP VALUE IS NOT PRESENT
'TO HANDLE THIS ERROR, WE USE THE ISERROR STATEMENT
If IsError(Application.vlookup(look_up_value, table_rng, 2, 0)) = False Then
vlook_value = WorksheetFunction.vlookup(look_up_value, table_rng, 2, False)
'CHANGING THE VLOOKUP VALUE FORMAT TO DATE FORMAT
date_format = WorksheetFunction.Text(vlook_value, "dd-mm-yyyy")
End If
End Sub
在 Microsoft Office 2016 中。
一旦數據復制到單元格。 選擇需要為日期格式的列。 右鍵單擊-> 格式化單元格,轉到數字選項卡並從下拉列表中選擇日期並選擇所需的日期格式,數據將轉換為日期格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.