2012-06-14 2 views
0

이것은 VBA를 처음 사용하기 때문에 VBA의 구문이 좋지 않습니다 (이전에 C++ 및 matlab을 배웠습니다).한 열의 데이터에 대한 계산 수행 및 Excel에서 다른 열로 결과 이동.

데이터 열을 가져오고 (3을 곱하는 것과 같은) 간단한 계산을 수행하고 새로운 열에 넣으려고합니다.

이제 정렬하려는 데이터에 중복 된 데이터가 있습니다. 예를 들어,이 열의 내용은 다음과 같습니다.

1 
2 
3 
4 

2 
3 
6 
8  
9 
2 
3 

반복되는 숫자 및 경우에 따라 공백이 포함될 수 있습니다. 지금 나는 분류에 대해 너무 걱정하지 않는다. 하나의 열에서 여러 개의 배열을 가져 와서 다른 열을 다음 열에 배치하는 데 문제가 있습니다. 어떻게해야합니까? 아래의 코드는 문자열에 적용됩니다. 어떻게 조정할 수 있습니까? 감사!

여기 내 시도입니다 :

Sub unique() 
    Dim arr As New Collection, a 
    Dim aFirstArray() As Variant 
    Dim i As Long 

    aFirstArray() = Range("E:E") 
    ' On Error Resume Next 
    For Each a In aFirstArray 
     arr.Add a, Str(a) 
     'I tried changing Str(a) to Integer(a), apparently it doesn't work like this in Excel 
    Next 

    For i = 1 To arr.Count 
     Cells(i, 3) = arr(i) 
    Next 

End Sub 

답변

1

이것은 당신의 생각 과정과 정확히 일치하지 않을 수 있습니다,하지만 본질은 일부 다른 VBA 도구를 사용하여, 거기라고 생각합니다. 질문이 있거나 문제가 해결되지 않으면 알려주십시오.

이 코드는 중복 된 셀과 빈 셀을 무시합니다. 그것들을 당신의 목록에 보관하고 싶다면 조정하기가 아주 쉽습니다.

Sub unique() 

Dim i As Integer 
Dim dict As New Dictionary 
Dim cel As Range 
Dim rng As Range 

Set rng = Range("A1:A12") 

i = 1 
For Each cel In rng 
    If cel <> vbNullString Then 
     If Not dict.Exists(cel.Value) Then 
      dict.Add cel.Value, i 
      i = i + 1 
     End If 
    End If 
Next 

For i = 1 To dict.Count - 1 
    Cells(i, 3) = dict.Keys(i) 
Next 

End Sub 
+0

안녕하세요, 그 코드는 훌륭하게 작동합니다. 몇 가지 조작을했는데 정확히 필요한 부분입니다. 이제이 데이터 열에 대해 몇 가지 작업을 수행하는 방법을 알아 내려고 노력하고 있습니다. 예를 들어, A 열에 대해 임의의 순서 (Op 100, Op 200, Op 300, 100, 300 등)의 다양한 작업이 있고 B 열에는 해당 작업에 대한 해당 시간 데이터가 있습니다. (Op 200 - Op 200 time, 예를 들면) 기본적으로, 내 질문은 어떻게 대응하는 행에 열 B에 대한 작업을 수행하는 동안 열을 통해 루프합니까? – user1457166

+0

StackOverflow를 처음 사용했기 때문에 StackOverflow가 어떻게 작동하는지 완전히 이해하지 못했을 수 있습니다.이를 사용하는 모든 사람들에게 가장 큰 이점이 있습니다. 원래 질문에 만족스럽게 답변 했으므로 원래 질문에 표시하십시오. 이렇게하면 앞으로 검색하는 사용자가 답변에 자신감을 가질 수 있습니다. 위의 의견에 귀하의 질문에 관해서. 다른 질문을 올리십시오. 당신이 그 사실을 알리 길 원한다면 그 질문이 게시 될 때 기꺼이 답변 해 드리겠습니다. 이것 역시 사안을 구체적이고 단순하게 유지하는 데 도움이되므로 앞으로 사용자는 특정 Q에 대한 답변을 찾을 수 있습니다. –

관련 문제