매크로를 만들고 있는데 매크로 기능의 일부는 VBA에서 새 스프레드 시트를 만드는 것입니다. 배포본의 특성 때문에 이름이 바뀔 것입니다. 이 스프레드 시트에 코드를 추가해야합니다. 어쨌든 내가 할 수 있니?VBA를 사용하여 VBA 코드로 새 스프레드 시트를 추가하는 방법
답변
J은 이미 어떻게 작동하는지 설명했습니다. 나는 한걸음 더 나아갈 것이다.
워크 시트를 추가하는 구문은 붙박이 Excel의 도움말을 확인하면
expression.Add(Before, After, Count, Type)
다음 당신이 볼 수있는 무엇 Before
, After
, Count
,
EXCEL FROM "S에 도움을 Type
스탠드
매개 변수 (모두 4 개 매개 변수 새로운 시트를 추가하는 전에 시트를 지정하는 객체 - TERS은
Before
) 선택 사항입니다.After
- 새 시트가 추가 된 후의 시트를 지정하는 객체입니다.Count
- 추가 할 용지 수. 기본값은 1입니다.Type
- 시트 유형을 지정합니다. 다음 XlSheetType 상수 중 하나 일 수 있습니다 (xlWorksheet
,xlChart
,xlExcel4MacroSheet
또는xlExcel4IntlMacroSheet
). 기존 템플릿을 기반으로 시트를 삽입하는 경우 템플릿의 경로를 지정하십시오. 기본값은 xlWorksheet입니다.
시트가 만들어지면 .insertlines
을 사용하여 관련 절차를 만들고 실행하려는 코드를 포함해야합니다.
주 - IMP : 당신은 VBA 프로젝트에 코드를 포함하는 코드를 원하는 경우에, 당신은 당신의 "VBA 프로젝트 개체 모델-트러스트 액세스"가 선택되어 있는지 확인해야합니다. 스냅 샷을 참조하십시오.내가 시트를 만든 다음 메시지에 "Hello World"
코드를 표시하는 Worksheet_SelectionChange
코드 삽입하고 여기 어디에
은 예입니다 - 시도하고 테스트 완료를
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim nLines As Long
Dim VBP As Object, VBC As Object, CM As Object
Dim strProcName As String
Set ws = Worksheets.Add
Set VBP = ThisWorkbook.VBProject
Set VBC = VBP.VBComponents(ws.Name)
Set CM = VBC.CodeModule
strProcName = "Worksheet_SelectionChange"
With ThisWorkbook.VBProject.VBComponents(_
ThisWorkbook.Worksheets(ws.Name).CodeName).CodeModule
.InsertLines Line:=.CreateEventProc("SelectionChange", "Worksheet") + 1, _
String:=vbCrLf & _
" Msgbox ""Hello World!"""
End With
End Sub
위의 코드를 실행하면 새 시트 코드 영역이 어떻게 표시됩니다.
다음 코드는 스프레드 시트를 추가합니다. 이 특정 스프레드 시트에 VBA 코드를 추가해야하는 경우
Public Sub Workbook_Add()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets.Add(, , 1, xlWorksheet)
With wks
'set codename of wks
ThisWorkbook.VBProject.VBComponents(.CodeName).Name = "tblWhatever"
'set tablename of wks
.Name = "whatever"
'add code (untested demo)
'ThisWorkbook.VBProject.VBComponents(.CodeName).CodeModule.InsertLines 1, "Option Explicit"
'add code (as of example from excel-help)
'Application.VBE.CodePanes(1).CodeModule.InsertLines 1, "Option Explicit"
End With
End Sub
, 당신은 더 VBProject에 개체를 검사해야 - CodeModule을 찾아 다음 즉 InsertLines.
추가 힌트 - 테이블의 CodeNames를 사용하려고합니다. 변경 가능성은 적지 만 처음에는 코드에서 사용하기가 쉽지 않을 수 있습니다. 나는 그것에 익숙해 져야했지만 나에게는 테이블 이름 사용에 대한 많은 이점이있다.
호프가 도움이 되길 바랍니다.)
기본 .Add
방법은 목록의 시작에 시트를 추가합니다. Siddarth Rout에 설명 된 것처럼 코드 행을 추가하기 전에 을 끝에 끝에 추가하려는 경우가 많습니다. 어디서든 사용할 수있는 것을해야 할 일 :
ActiveWorkbook.Worksheets.ADD After:=ActiveWorkbook.Sheets(ActiveWorkbook.Worksheets.Count)
WB를 사용자가 정의한 경우 읽기 및 설정하기 쉽습니다 : 그림과 같이
Dim WB as Excel.workbook
Set WB = ActiveWorkbook
WB.Sheets.ADD After:=WB.Sheets(WB.Sheets.Count)
Set VBC = ActiveSheet 'If using in Siddarth Rout's code above
Sheets
및 Worksheets
는, 교환 할 수있다.
- 1. VBA를 사용하여 Excel에서 새 시트를 추가하는 방법은 무엇입니까?
- 2. VBA를 사용하여 Excel 스프레드 시트를 배포하는 가장 좋은 방법
- 3. VB6에서 새 Excel 스프레드 시트를 만드는 방법
- 4. 엑셀 스프레드 시트를 엑세스로 연결하는 VBA
- 5. VBA 코드로 워크 시트를 검색하는 방법은 무엇입니까?
- 6. 스프레드 시트를 자동화하는 방법
- 7. Visio의 VBA를 사용하여 그룹에 모양을 추가하는 방법
- 8. Excel 스프레드 시트에서 VBA 추출
- 9. VBA를 사용하여 Excel 워크 시트를 Access로 가져 오기
- 10. Jquery를 사용하여 스프레드 시트를 미리로드합니다.
- 11. 추출 데이터 - VBA를 사용하여 VBA
- 12. 다른 스프레드 시트를 사용하여 Excel 데이터 바꾸기
- 13. Excel의 스프레드 시트를 만드는 방법
- 14. xml 스프레드 시트를 읽는 방법
- 15. VBA Excel 시트를 잠그는 방법
- 16. POI SXSSF를 사용하여 큰 스프레드 시트를 읽는 방법
- 17. VBA를 사용하여 Excel 2010에서 인쇄 워크 시트를 중지하십시오.
- 18. VBA ActiveWorkbook.SaveAs가 열린 스프레드 시트를 변경하는 이유는 무엇입니까?
- 19. VBA 코드로 Excel 시트에 데이터를 채우는 방법
- 20. WinForms 호스팅 스프레드 시트를
- 21. 스프레드 시트를 해독하는 도구입니까?
- 22. 스프레드 시트를 열려면
- 23. C#을 사용하여 Google 스프레드 시트를 다운로드하는 방법?
- 24. 병합으로 스프레드 시트를 하나의 스프레드 시트로 만들 수 있습니다.
- 25. Google 스프레드 시트를 사용하여 Google 스프레드 시트 만들기
- 26. 다른 통합 문서의 워크 시트를 VBA를 사용하여 Excel에로드
- 27. PHP를 사용하여 Google 스프레드 시트를 HTML로 검색
- 28. vb.net을 사용하여 스프레드 시트를 html로 변환 하시겠습니까?
- 29. DocumentFormat.OpenXML을 사용하여 서식이 지정된 스프레드 시트를 만드시겠습니까?
- 30. 스프레드 시트를 사용하여 Excel 파일 내보내기
+1 오른쪽에 있습니다. –