2014-09-23 62 views
0

我想返回日期所在的單元格。 B列中每個日期有一個發生率,格式爲dd/mm/yyyy。這是從上面的單元格計算的(例如使用=B3+7)。在從公式計算出的範圍內查找日期,並使用英國日期格式化格式

我設法檢索日期使用application.vlookup,所以我知道它是「那裏」。立即窗口給出正確的日期使用? activecell.value

我無法獲取range.find函數來返回任何東西。如果我輸入一個字符串與美國日期格式,如09/23/2014入列,然後range.find返回一個值,但對於英國格式的日期(=23/09/2014)返回Nothing

是在range.find功能只能處理美國日期?

Sub columnfind() 
Dim DateRow, correctCell As Range 
Set DateRow = ActiveSheet.Range("a1:B1000") 

Dim strCurrentDate As String 
Dim IntDate As Long 
IntDate = CLng(CDbl(Now())) 

strCurrentDate = Format(Now, "mm/dd/yyyy") 

Set correctCell = DateRow.Find(IntDate, LookIn:=xlValues, lookat:=xlPart) 
Set correctCell = DateRow.Find(strCurrentDate) 
Set correctCell = DateRow.Find(Date) 

cell = Application.VLookup(IntDate - 1, ActiveSheet.Range("B1:B1000"), 1, 1)'verify existence of date for my sanity 
End Sub 

。 。

+0

如此看來 HTTP:// WWW .ozgrid.com/VBA/find-dates.htm – 2014-09-23 12:04:46

回答

1

您可以使用類似:

Range("A1").Select 
Application.FindFormat.Clear 
Application.FindFormat.NumberFormat = "dd/mm/yy;@" 
Set h = Range("A1:A4").Find("21/03", , , , , , , , True) 
MsgBox h.Address 

您定義的日期格式,使用Find方法的布爾SearchFormat選項之後。

+0

謝謝,這是我一直在尋找的東西,而不是使用解決方法。 :) – Cassiopeia 2014-09-24 08:23:42

0

這是我現在的解決方法,如果確實range.find不適用於非美國日期。

Sub columnfind() 
Dim DateCol, correctCell As Range 
Set DateCol = ActiveSheet.Range("B1:B1000") 

Dim strCurrentDate As String 

DateCol.NumberFormat = "mm/dd/yy;@" 

strCurrentDate = Format(Now, "mm/dd/yy") 
DateCol.Find(strCurrentDate).Select 
DateCol.NumberFormat = "m/d/yyyy" 


End Sub 
1

如果查找()不能與某些格式上班,就不要使用它:

Sub ColumnFind() 
    Dim bRng As Range, r As Range 
    Set bRng = Range("B1:B1000") 
    For Each r In bRng 
     If r.Text = "23/9/2014" Then 
      MsgBox r.Address(0, 0) 
     End If 
    Next r 
End Sub 

Sub ColumnFind() 
    Dim bRng As Range, r As Range 
    Dim sDate As String 
    sDate = Format(Date, "dd/m/yyyy") 
    Set bRng = Range("B1:B1000") 
    For Each r In bRng 
     If r.Text = sDate Then 
      MsgBox r.Address(0, 0) 
     End If 
    Next r 
End Sub