문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| vba:home [2020/06/18 02:35] – [CopyCellContents] taekgu | vba:home [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| - | ====== EXCEL ====== | + | ====== EXCEL VBA ====== |
| ===== GetHangulTitle ===== | ===== GetHangulTitle ===== | ||
| - | < | + | < |
| Function GetHangulTitle(value as String) | Function GetHangulTitle(value as String) | ||
| dim idx | dim idx | ||
| 줄 14: | 줄 14: | ||
| </ | </ | ||
| ===== GetDataType ===== | ===== GetDataType ===== | ||
| - | < | + | < |
| Function GetDataType(colName As String, dataType As String, customerType As String) | Function GetDataType(colName As String, dataType As String, customerType As String) | ||
| If customerType > " " Then | If customerType > " " Then | ||
| 줄 32: | 줄 32: | ||
| </ | </ | ||
| ===== CopyCellContents ===== | ===== CopyCellContents ===== | ||
| - | < | + | < |
| Sub CopyCellContents() | Sub CopyCellContents() | ||
| Dim objData As New DataObject | Dim objData As New DataObject | ||
| 줄 38: | 줄 38: | ||
| Dim str As String | Dim str As String | ||
| - | | + | |
| - | | + | strTemp = “” |
| - | | + | |
| - | If str > "" | + | |
| - | If strTemp > "" | + | Else |
| - | strTemp = strTemp + Chr(10) + str | + | |
| - | Else | + | For j = LBound( rMulti, 2) To UBound(rMulti, |
| - | strTemp = str | + | For i = LBound(rMulti, |
| - | End If | + | str = rMulti(i, j) |
| - | End If | + | |
| - | | + | If strTemp > “” |
| - | objData.SetText (strTemp) | + | strTemp = strTemp + Chr(10) + str |
| + | Else | ||
| + | strTemp = str | ||
| + | End If | ||
| + | End If | ||
| + | Next i | ||
| + | | ||
| + | | ||
| + | |||
| + | objData.SetText(strTemp) | ||
| objData.PutInClipboard | objData.PutInClipboard | ||
| End Sub | End Sub | ||
| + | </ | ||
| + | ===== GetRowNumber ===== | ||
| + | <code vb> | ||
| + | Function GetRowNumber(tCell As Range, idx As Integer) | ||
| + | Dim tableName As String | ||
| + | tableName = tCell.Cells(1, | ||
| + | | ||
| + | GetRowNumber = 1 | ||
| + | | ||
| + | For i = 2 To 1000 | ||
| + | If tCell.Cells(i, | ||
| + | GetRowNumber = GetRowNumber + 1 | ||
| + | Else | ||
| + | Exit Function | ||
| + | End If | ||
| + | Next | ||
| + | End Function | ||
| + | </ | ||
| + | ===== Hungarian ===== | ||
| + | <code vb> | ||
| + | Function Hungarian(colNm As String) | ||
| + | Dim WrdArray() As String | ||
| + | Dim nm As String | ||
| + | WrdArray = Split((WorksheetFunction.Proper(colNm)), | ||
| + | For i = LBound(WrdArray) To UBound(WrdArray) | ||
| + | nm = nm & WrdArray(i) | ||
| + | Next i | ||
| + | nm = LCase(Left(nm, | ||
| + | Hungarian = nm | ||
| + | End Function | ||
| + | </ | ||
| + | |||
| + | ===== AK Array ===== | ||
| + | <code vb> | ||
| + | Function getAKArray(tCell As Range, kIdx As Integer) | ||
| + | Dim tableName As String | ||
| + | Dim t1 As String | ||
| + | Dim idx As Integer | ||
| + | Dim myCols As String | ||
| + | Dim tmp As String | ||
| + | Dim tmpNo As Integer | ||
| + | Dim i, j As Integer | ||
| + | Dim ordNo As Integer | ||
| + | Dim curNo As Integer | ||
| + | Dim akCnt As Integer | ||
| + | Dim sLog As String | ||
| + | idx = 0 | ||
| + | ordNo = 2000 | ||
| + | akCnt = 0 | ||
| + | curNo = 0 | ||
| + | myCols = "" | ||
| + | If (tCell.Cells.Count > 1) Then | ||
| + | | ||
| + | Exit Function | ||
| + | End If | ||
| + | tableName = tCell.Cells(1, | ||
| + | idx = GetRowNumber(tCell, | ||
| + | For i = 1 To idx | ||
| + | If tCell.Cells(i, | ||
| + | akCnt = akCnt + 1 | ||
| + | curNo = tCell.Cells(i, | ||
| + | If curNo > 0 And ordNo > curNo Then | ||
| + | ordNo = curNo | ||
| + | myCols = tCell.Cells(i, | ||
| + | End If | ||
| + | End If | ||
| + | Next | ||
| + | For j = 2 To akCnt | ||
| + | curNo = 2000 | ||
| + | For i = 1 To idx | ||
| + | If tCell.Cells(i, | ||
| + | If tCell.Cells(i, | ||
| + | If InStr(myCols, | ||
| + | tmp = tCell.Cells(i, | ||
| + | curNo = tCell.Cells(i, | ||
| + | End If | ||
| + | End If | ||
| + | End If | ||
| + | Next | ||
| + | ordNo = curNo | ||
| + | myCols = myCols + ", " + tmp | ||
| + | Next | ||
| + | If myCols > "" | ||
| + | ' | ||
| + | getAKArray = myCols | ||
| + | Else | ||
| + | getAKArray = "" | ||
| + | End If | ||
| + | ' | ||
| + | End Function | ||
| </ | </ | ||
| ===== 사용하는 DLL ===== | ===== 사용하는 DLL ===== | ||
| - | DataObject는 MSForms를 필요로 한다. | + | '' |
| MSForms가 목록에없고 참조 목록에서 찾을 수 없으면 | MSForms가 목록에없고 참조 목록에서 찾을 수 없으면 | ||
| 줄 63: | 줄 162: | ||
| UserForm 추가). 파일을 찾을 수 없으면 어떻게 든 얻을 수 있습니다 | UserForm 추가). 파일을 찾을 수 없으면 어떻게 든 얻을 수 있습니다 | ||
| 지워지고 Excel을 다시 설치해야 할 수도 있습니다. | 지워지고 Excel을 다시 설치해야 할 수도 있습니다. | ||
| + | ===== Module생성하고 ===== | ||
| + | |||