Excel - 지정된 열에서 데이터 추출

발행물

몇 가지 데이터 열이 다소 다음과 같이 표시됩니다.

 data1 ... data2 ... data3 val ......... val ........ val val ......... val ........ val val ......... val ........ val val ......... val ........ val 

(data1-3은 열에있는 데이터의 이름입니다)

이 줄을 따라 수정 된 .csv 파일로 다소 자동으로 변환하고 싶습니다.

 (data3) (data1) (data2) val ........- val ....... val val ........- val ....... val val .. ......- 발 ....... 발 val ........- 발 ....... 발 

열 머리글은 .csv 파일에 표시되지 않기 때문에 inside ()를 넣습니다. 예를 들어 data1-3의 순서는 무작위이며 다른 순서를 사용할 수 있어야합니다. 값을 네거티브로 변경하기 위해 셀을 포맷하는 방법을 알고 있습니다.

파일의 명명 된 열에서 데이터를 검색하는 수식과 같을 것으로 기대합니다. 마지막 열의 셀은 '= [path / sourcefile.xls] sheetname! column-values ​​: "data2"'와 유사합니다. 이것은 벗어날 수 있으며 엑셀에서도 가능하지 않을 수도 있습니다. 그렇지 않다면 알고 싶습니다.

또한 소스 파일은 csv 파일에서 사용되지 않을 컬럼을 포함합니다. 따라서 프로세스는 지정된 파일에서 지정된 열을 식별하고 복사 및 재정렬 한 다음 .csv에 붙여 넣어야합니다.

이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

해결책

아래의 코드는 가정합니다.

  • 1. 데이터가 Sheet1이라는 시트에 있습니다.
  • 2. 임시 시트 이름 myTempSheet를 작성할 수 있습니다
  • 3. tempCSV.csv에 저장할 CSV 파일 이름
  • 4. 빈 열을 요구하지 않습니다.

쓰다

코드를 붙여 넣은 후 매크로를 실행하십시오. 그러면 열을 CSV에 표시 할 방법을 묻습니다. 따라서 원하는 첫 번째 열이 D이면 정답은 4입니다. 열이 어떻게 나타나는지 알았 으면 값없이 OK를 누릅니다.

암호:

 Sub createFile () Dim numOfCol As Integer Dim colNum As Integer Dim myTempSheet As String Dim 데이터 시트 as 문자열 Dim colValue As Variant Dim ColIndex () as Integer Dim cvsName As String ThisWorkbook.Save myTempSheet = "myTempSeet"dataSheet = "Sheet1"cvsName = " ( "ColumnsCount") .Column ReDim ColIndex (numOfCol) colNum = 1의 경우 numOfCol colValue = InputBox ( "어떤 열이 위치해야하는지"& colNum & "CVS 파일에서", "Col Position") ColValue = ""Then Else ColIndex (colNum) = colValue End If 다음 On Error Next Sheets (myTempSheet) .Delete On Error GoTo 0 Sheets.Add ActiveSheet. 이름 = myTempSheet colNum = 1의 경우 numOfCol의 경우 ColIndex (colNum)> 0 Then Sheets (dataSheet) .Select Columns (ColIndex (colNum)) .Select Selection.Copy Sheets (myTempSheet) .Select Columns (colNum) .Select ActiveSheet.PasteSpecial xlValue Else Exit For End If 다음 시트 (myTempSheet) .Select numOfCol = 셀 (1, Columns.Count) .End (xlToLe (1, colNum) = "("& Cells (1, colNum) & ")"끝내기 다음 ActiveWorkbook.SaveAs _ Filename : = cvsName & ".csv", _ FileFormat : = xlCSV, _ CreateBackup : = True End Sub 

노트

이 팁에 대한 rizvisa1에게 포럼에 감사드립니다.

이전 기사 다음 기사

톱 팁