2 차원 배열에 데이터가 포함 된 Excel 파일이 있습니다. 내가 원하는 무엇매크로를 사용하여 Excel 파일의 데이터 바꾸기
테이블 (토토, 또는 타타, 또는 티티)의 컬럼의 헤더 별표를 '*'대체 할 수있는 매크로를 만드는 것입니다.
2 차원 배열에 데이터가 포함 된 Excel 파일이 있습니다. 내가 원하는 무엇매크로를 사용하여 Excel 파일의 데이터 바꾸기
테이블 (토토, 또는 타타, 또는 티티)의 컬럼의 헤더 별표를 '*'대체 할 수있는 매크로를 만드는 것입니다.
사용하여 바로 워크 시트 도구 (NO VBA) :
Ctrl-F
Find All
Ctrl-A
모든 검색 결과Close
을 선택하는 어떤 대화 찾기=C$2
Ctrl-Enter
+1 비 VBA 솔루션의 경우 :) –
@SiddharthRout Thanks (^ : –
좋아요?
Option Explicit
Sub Sample()
Dim oRange As Range, aCell As Range, bCell As Range
Dim ws As Worksheet
Dim ExitLoop As Boolean
On Error GoTo Whoa
'~~> Change this to the relevant sheet name
Set ws = Worksheets("Sheet1")
Set oRange = ws.Cells
Set aCell = oRange.Find(What:="~*", LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
Set bCell = aCell
'~~> Assuming that the headers are in row 2
aCell.Value = Cells(2, aCell.Column)
Do While ExitLoop = False
Set aCell = oRange.FindNext(After:=aCell)
If Not aCell Is Nothing Then
If aCell.Address = bCell.Address Then Exit Do
'~~> Assuming that the headers are in row 2
aCell.Value = Cells(2, aCell.Column)
Else
ExitLoop = True
End If
Loop
End If
Exit Sub
Whoa:
MsgBox Err.Description
End Sub
그리고 이전에 Excel을 사용해 본 적이 없으므로 어떻게 구현할 수 있습니까? –
이 코드를 모듈에 붙여 넣습니다. 위의 코드에서 "Sheet1"을 데이터가있는 관련 시트 이름으로 대체하십시오. 또한'aCell.Value = Cells (2, aCell.Column)'의'2'를 헤더가있는 행으로 변경하고 매크로를 실행하십시오. –
또한 완료를 위해'Set oRange = ws.Cells'를 사용하고 있습니다 시트. 원하는 경우 관련 테이블 범위로 변경할 수 있습니다. 예를 들어,'Set oRange = ws.Range ("B2 : E6")' –
여기에 나와있는 간단한 방법이 있습니다.
i = 3
While Cells(2, i).Value <> ""
Range(Cells(3, i), Cells(6, i)).Select
Selection.Replace What:="~*", Replacement:=Cells(2, i).Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
i = i + 1
Wend
셀 (x, y) : x는 행을 참조하고, y는 열을 참조합니다.
코드가 적절한 범위를 선택하게하려면이 기본 기본 대신에보다 정교한 범위 선택을 사용할 수 있습니다.
Excel에서 구현하려면 코드 창을 열고 원하는 매크로/서브 루틴에이 코드를 붙여 넣기 만하면됩니다.
셀을 통한 Bryan Looping은 내장 된'.Find'와'.FindNext'를 사용하는 것보다 느립니다. :) 아마도 이것을보고 싶습니까? http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ 코스가 아주 적은 셀이라면 속도는 중요하지 않습니다. –
이걸 보니? http://stackoverflow.com/questions/10714251/excel-macro-not-using-select –
속도는이 경우 컬럼 수에 따라 결정됩니다. 실행 시간은 무시할 수있을 것입니다. 그리고 확신합니다.Find는 여러면에서 저의 단순한 제안보다 뛰어납니다. 쉽게 읽을 수 있고 이해할 수있는 것을 게시하는 것을 선호합니다. 내 대답은 단순히 Excel에서 "찾기 및 바꾸기"기능을 수행하고 각 열에 루프를 추가하는 것입니다. 다시 내 대답의 의도는 간단하고 기본적인 것이었다. – Bryan
가 정확히 무엇에 별표 (*)를 교체 공식? 나는 네가 원하는 것을 불분명하다. 모든 별표를 해당 열의 머리글 이름으로 바꾸기 만합니까? – Bryan
정확히 선생님, 1 호선 ('tata'), 2 호선 ('toto') 등등이 될 것입니다. –
그래서 명확성을 위해 매크로 다음의 데이터가 다음과 같이 나타나길 원합니다. 첫 번째 데이터 행 (1 38 345 타타) 두 번째 라인 (2 toto 367 345) 등? – Bryan