2016-09-18 3 views
-1

안녕하세요 저는 VBA의 초보자입니다. 몇 가지 일을해야하지만 어떻게해야 할 지 모릅니다.VBA excel 바꾸기

1) 우선 쉼표를 변환해야합니다 (() 점입니다.) 2 I 싶어 번호 세포의 점

3) 만약 전에 열에서

2) 나는 싶어 편지입니다 = 3 + 1 I 예컨대 파일을 업로드 아래 = 4

내 코드 예 전지용 +1

를 숫자로 변경 (Ⅰ, 13) 0.b1 = 0 + 1 = 1 또는 3.C (작동하지 않음)
오류 : Statement가 Type 블록 외부에서 유효하지 않습니다.

http://www.wyslij-plik.pl/pokaz/906005---kgkx.html

Excel view

Sub change() 

Dim i As Integer 
Dim dot As String 


i = 2 
While Cells(i, 1) <> "" 

dot = Cells(i, 1) 
dot = Replace(dot, ",", ".") 

If InStr(Cells(i, 1), ".") Then 
Cells(i, 2) = Left(Cells(i, 1), 2) ' i wanna only the number before the dot 

End If 

If IsNumeric(Cells(i, 1)) = False Then 
Cells(i, 2) = Cells(i, 1) + 1 

End If 
    'If in the cells is a letter i wanna change it to number +1 
for example cells (i,13) 0.b1= 0 + 1 = 1 or 3.c = 3+ 1 = 4 

i = i + 1 
Wend 
End Sub 
+0

귀하의 요청 사항이 명확하지 않으므로 이전에 Excel 시트 샘플을 추가하고 원하는 결과를 얻으십시오 (단 1-2 행). 수동으로 데이터를 작성하십시오. –

+0

네,하지만 여기 내 첫날입니다. 이제 Excel 시트를 업로드하는 방법을 찾고 있습니다. 저를 도울 수 있습니까? – Konrad

+1

또한 "작동하지 않는 것"대신 작동하지 않는 것, 얻은 것 및 얻을 것으로 예상되는 것에 대한 자세한 내용을 제공합니다. https://stackoverflow.com/help/how-to-ask. 여기서 파일을 업로드 할 수는 없습니다. – Slai

답변

1

일이

Sub change()  
    Dim i As Integer, s As String, a() As String, cell As Range 

    Set cell = [A2] 
    While cell > "" 
     s = Replace(cell, ",", ".") 
     a = Split(s, ".") 
     i = a(0) 
     If UBound(a) > 0 Then 
      If a(1) Like "[a-zA-Z]*" Then i = i + 1 
     End If 
     cell(, 2) = i  ' the cell on its right 
     Set cell = cell(2) ' the cell below it 
    Wend  
End Sub 

당신은 열 B에 열 A를 복사하여 VBA없이 그것을 해결할 수 있습니다, 다음 데이터가> 텍스트 나누기> 쉼표를 확인 같은 및 기타 : .을 입력 한 다음이 수식을 D2 :

에 사용할 수 있습니다.
= B2 + Not(IsNumber(C2)) 
+0

UBound (a)> 0이면 모두 괜찮을까요? 내가 구문 오류가있어서 – Konrad

+0

고정''UBound (a)> 0 Then'' – Slai

+0

나는 당신의 대답에서 무언가를 배웠기 때문에 나는 약간의 주제에서 벗어났다.'[A2]'는 동일하다. 'Range ("A2")'와'cell (2)'는'cell.Offset (1,0)'과 같다. 그게 다야? 왜냐하면 놀랍지 만 –