위대한 특강에서 추첨에 당첨되어 받은
선생님 저서를 보며 하나씩 배우고 있습니다.
아래의 코드에서 "청춘"이라고 되어있는 부분을
셀주소로 처리하는 방법을 알고 싶어요.
그리고 참조할 파일이 다른 폴더에 저장되어 있을때 처리방법도 좀 부탁드려요.
감사합니다.
Sub Test()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Dim i As Long
Dim Fpath As String
Fpath = Application.PathSeparator & "product.xlsx"
Set DB = OpenDatabase(ThisWorkbook.Path & Fpath, False, True, "Excel 8.0;")
strSQL = "SELECT * FROM [DB$] WHERE 담당자='청춘'"
Set RS = DB.OpenRecordset(strSQL)
Worksheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Format(Date, "yymmdd") & "_청춘_" & Sheets.Count - 1
With Sheets(Sheets.Count)
For i = 0 To RS.Fields.Count - 1
.Cells(1, i + 1).Value = RS.Fields(i).Name
Next i
.Range("a2").CopyFromRecordset RS
.UsedRange.Borders.Weight = xlThin
.Range("b2").Resize(RS.RecordCount).NumberFormat = "yyyy-mm-dd"
.Range("f2").Resize(RS.RecordCount).NumberFormat = "#,##0"
End With
RS.Close: Set RS = Nothing
DB.Close: Set DB = Nothing
End Sub
첫댓글 안녕하세요? [ITX청춘]님...
첫번째 질문에서 '청춘'이라는 셀이 A1셀이라고 가정한다면...
strSQL = "SELECT * FROM [DB$] WHERE 담당자= '" & worksheets("시트이름").range("a1").value & "'"
로 변경해 주시면 됩니다.
두번째 질문은 예를들어 폴더가...
c:\연습 폴더의 product.xlsx파일을 가져오는것 이라고 가정한다면...
Fpath = "c:\연습\product.xlsx"
로 변경해 주시고, Set DB부분도...
Set DB = OpenDatabase(Fpath, False, True, "Excel 8.0;")
로 변경해 보세요...
그럼 잘 해결되시길... ^^*
감사합니다.
Set RS = DB.OpenRecordset(strSQL)
첫번째 질문부분의 답변내용을 복사해서 실행한 결과
위 부분에서 에러가 발생합니다.
뭐가 문제일까요?
첫번째 질문내용중 worksheets("시트이름") 이라는 부분도 그대로 복사하셨나요?
그 내용은 a1셀에 담당자 이름이 있는 시트명을 넣어 주셔야 합니다.
그래도 잘 안된다면 파일을 첨부해서 여쭤보시면 더 고맙겠습니다...
그럼...!