2014-05-14 5 views
0

안녕하세요 2 개의 날짜 변수를 비교해야합니다. ' 그 중 하나는 일반 필드 셀에서 가져온 문자열 변수에 저장합니다. 다른 하나는 데이터 필드에서 가져 와서 Date 변수에 저장합니다. 첫 번째 데이터를 가지고 -i ,이 형식 "(2014년 5월 8일)"에있는 일반 필드에 하나 그리고 난 다음 절차에 작업 : 내가 따라 절차는서식이 지정된 날짜를 비교하십시오.

tempdate1 = Cells(27, "N").Value: 
tempdate1 = Replace(tempdate1, "(", ""): 
tempdate1 = Replace(tempdate1, ")", ""): 
tempdate1 = Format(tempdate1, "DD-MM-YYYY"): 

나는 "TIMESTAMP"문자열을 검색하고 그 옆에 관련된 날짜 열을 가져 가기 위해 for를 사용하여 모든 열 A를 읽습니다.

- 최고 날짜는 최대 날짜이며, 처음에는 tempdate에서 값을받습니다. -countdate는 원하는 날짜 수를 계산하는 변수입니다 (발견 된 날짜가 더 큰 경우에만 날짜를 계산하려고합니다. then local maximun) -if temp> date1 로컬 MAXIMUM을 찾았습니다. TIMESTAMP를 계산하고 날짜를 배열에 넣습니다.

highestDate = tempdate1 
countdate = 1 ' because i have already the first date 
k = 0 
dates(k) = highestDate ' i put in the first position the first data 
'Find the highest Date 
For i = 1 To lastRow 
If Cells(i, 3).Value = "TIMESTAMP" Then 
temp = Cells(i, 4).Value: 
temp = Format(temp, "MM-DD-YYYY"): 
date1 = CDate(highestDate): 
    If temp > date1 Then: date1 = temp: countdate = countdate + 1: highestDate = date1: 
dates(k) = highestDate: k = k + 1 
End If 
Next i 

문제는 절차가있는 경우 내부받지 않으므로 나 엑셀 시트에 내가있는 제 1보다 큰 몇몇 기간이 있더라도 어레이 요소가 존재하지 않는다는 것이다. 미리 감사드립니다.

+0

확인, 시간이 아주 기본을 배울 수를 코드를 단계별로 실행하는 것과 같은 디버깅 ... –

답변

1

VBA는 콜론, 연속 문자를 허용하지만 일반적으로 권장되지 않습니다. 예를 들어, 중단 점을 설정할 수 없으므로 콜론을 사용할 때는 디버깅이 어렵습니다.

당신이 디버깅 할 때 당신은 당신이 배열의 범위를 설정하는 방법 볼 수 있습니다,

dates(k) = highestDate 

에 중단 점을 설정하십시오 :

dim dates(0) 
highestDate = tempdate1 
countdate = 1 ' because i have already the first date 
k = 0 
dates(k) = highestDate ' i put in the first position the first data 
'Find the highest Date 
For i = 1 To lastRow 
If Cells(i, 3).Value = "TIMESTAMP" Then 
temp = Cells(i, 4).Value: 
temp = Format(temp, "MM-DD-YYYY"): 
date1 = CDate(highestDate): 
    If temp > date1 Then: date1 = temp: countdate = countdate + 1: highestDate = date1: 
     dates(k) = highestDate 
     k = k + 1 
     REDIM PRESERVE dates(k) 'make room in the array! 
    End If 
Next i 
+0

"배열은 이미 치수가 기입되었습니다"라는 새로운 변경 사항을 적용 해 주셔서 감사합니다. – Andrea

+0

이제 어레이가 작동하고 있습니다. 방금 데이터를 넣기 전에 REDIM PRESERVE를 넣어 두었습니다. 실제로는 좋은 소리로 들립니다. :) 대단히 감사합니다. – Andrea

관련 문제