2014-10-31 2 views
0

왜 형식 불일치 오류가 발생하는지 알고 싶습니다. 커서는이 코드의 맨 아래에있는 파일 이름 문자열에서 마지막 두 번째 "&"을 강조 표시합니다. 날짜가 될 변수 dt와 관련이 있습니다. 어떤 아이디어?왜 유형 불일치 오류가 발생 했습니까?

코드 :

Sub daily_report_data() 

Dim strpath1 As String 
Dim strpath2 As String 
Dim wb As Workbook 
Dim wb2 As Variant 
Dim ws As Worksheet 
Dim nm As String 
Dim dt() As Date 

strpath1 = "\\ironhide\[folder name]\[folder name]\[folder name]\[folder name]\" 
strpath2 = "c:\Users\[user.name]\desktop\data files\" 

Workbooks.Open Filename:=strpath1 & "[file name].xlsx", ReadOnly:=True 

Set wb = Workbooks("[file name]") 
Set ws = Workbooks("[file name]").Sheets("data") 
nm = ws.Name 

dt = Date 

Workbooks.Add 
DoEvents 

ActiveWorkbook.SaveAs strpath2 & nm & "_" & dt & ".xlsx" 
Set wb2 = Workbooks(nm & dt & ".xlsx") 
+0

DT가 날짜 (숫자 값)을 반환하면 형식과 같은 문자열이 캐스팅 (DT, 'MM/DD/YYYY') – Sorceri

+0

@AGryckiewicz 필요를 : 때 당신은 정답을 받아 들였습니다. 앞으로 다른 사람들이 질문과 답변을 읽는 데 도움이 될 것입니다. 나는 당신이 아직 어떤 탐구에 대한 어떤 대답도 수락하지 않았 음을 알지만 그렇게하면 평판에 대한 점수를 줄 수도 있습니다 ... ;-) –

답변

1

님의 선언 : 배열의

Dim dt() As Date 

합니다. 배열에 "&"문자열 연결 연산자를 사용할 수 없습니다.()을 제거하십시오.

+0

ok. 그래서 날짜 함수의 결과는 배열입니까? 배열을 파일 이름에 연결할 수있는 방법으로 배열을 변환하려면 어떻게해야합니까? – AGryckiewicz

+0

아니요, date 함수의 결과가 배열이 아닙니다. 선언에서()를 제거하십시오. "dt = Date"가 성공한 이유는 무엇입니까? –

+0

Date 함수의 결과는 "mm/dd/yyyy"형식의 Date 형식입니다. 이것을 파일 이름의 일부로 사용하려면 Format (dt, "ddmmyyyy")와 같은 형식을 사용하여 슬래시를 포맷하고 제거하고 싶을 것입니다. – jeuton

0

같은 것을 사용해보십시오 :

Dim FileNPath As String 
Dim strDate As String 
Dim dt As Date 

strDate = Format(dt, "ddmmyyyy") 
FileNPath = strpath2 & nm & "_" & strDate & ".xlsx" 

ActiveWorkbook.SaveAs fileName:=FileNPath 
+0

코드를 이해하기 쉽게 코드에 추가하십시오. – peege

관련 문제