2013-05-15 2 views
0

현재 프로젝트는 98로 작성된 프로그램을 다시 작성하는 것입니다. 솔루션은 Excel에서 일부 작업을 수행 한 다음 Word에서 다음 작업을 수행 한 다음 세 번째 단계에서 Excel로 돌아갑니다. 이 프로그램은 2 개의 파일을 동기화하며, 솔루션은 동기화가 필요한 20 개의 파일에 대해 멋지게 처리됩니다. 그러나 이제는 동기화 할 파일이 약 1,000 개이므로 프로세스를 간소화하기 위해 노력하고 있습니다. 파일의 출력은 X.X 및 X.XXXXX 사이의 범위 - 내가 읽을 파일을 쉽게하기 위해VBA 정수 끝 부분에 쉼표를 추가하여 자동으로 형식을 변경하지 않습니다.

Columns("A:A").Select 
Selection.NumberFormat = "0.00000" 

로 포맷. 그러나 두 번째 부분은 쉼표를 추가 한 다음 숫자 관계에 관한 편지를 작성하는 것입니다. 당면한 질문에는 필요하지 않습니다. 쉼표를 추가하려고하면 Excel에서이를 수정하고 잘못 출력합니다. 예를 들어

0.42400 0.87200

1.31600 1.75200

가된다 :

0.424, 01

0.872 23,516,,

1.316

,

이 X.XXXXX 숙박한다

1.752

. 다음은 내가 시도한 것입니다 :

  • 10 진수 식별자가 '.'가되도록 Excel의 옵션을 변경하십시오. 수천은 ':'입니다.
  • `범위 ("A"& ICTR)의 형식 (범위 ("A"& ICTR) & ",") = "0.00000"
  • 기타 포럼/구글/빙
  • Selection.NumberFormat은 =

은 정말, 난 그냥 다시 엑셀

어떤 아이디어가 말씀을 다시 개방하고, 이외의 다른 해결책을 찾을 수없는이 Excel에서 수행 할 수 있으리라 믿고있어?

+0

VBA가 아닌 솔루션은 별도의 열에 '= A1 & REPT ("0", 5-LEN (A1)) & ",") 수식을 사용하는 것입니다. – chuff

답변

1

작동합니다 형식 지정 옵션뿐만 아니라 수식이 필요합니다.당신의 VBA 코드에서 옆에 원래 값으로 셀을 선택하고,이 코드 줄을 추가 :

Selection.FormulaR1C1 = "=TEXT(RC[-1],""#0.00000"") & "",""" 

이 당신에게 서식 및 소수의 왼쪽에 관계없이 수의 길이의 쉼표 (도착를 포인트) -하지만 마지막 글자를 추가하려면 분명히 특정 요구 사항에 맞게 수식을 수정해야합니다.

+0

RC [-1]이 (가) 무엇을 설명 할 수 있습니까? R1C1 참조를 사용하지 않고 'Selection.Formula' 만 할 수 있다고 가정합니다. 맞습니까? –

+0

또 마지막 행에서 막을 수있는 방법이 있습니까? 그것은 나에게 100k + 행을주었습니다. :/ –

+0

RC [-1] 방금 왼쪽의 셀을 사용하는 공식을 가리 킵니다. 즉, 셀 D3에 있으면 RC [-1]은 C3 셀을 나타냅니다. Excel의 그리드에서는 사용되지 않지만 VBA로 프로그래밍 할 때는 대부분 이와 같은 상대 참조를 사용하려고합니다. – ExactaBox

1

수식을 사용하여 열을 삽입 할 수 있습니다. 당신이

두번째 부분은 쉼표를 추가하는 것입니다, 다음 번호에 관한 편지 관계

당신이 거라고 상태 때문에 이런 식으로 뭔가가

Dim TotalRows As Long 
TotalRows = ActiveSheet.UsedRange.Rows.Count 

Columns("B:B").Insert 

With Range(Cells(1, 2), Cells(TotalRows, 2)) 
    .Formula = "=LEFT(""'""&A1&REPT(""0"",5),7)" 
    .Value = .Value 
End With 

Columns("A:A").Delete 
+0

이 솔루션은 효과가 있습니다. 감사합니다. 그러나 'Formula'가 무엇을하는지 확신 할 수 없으므로이를 조사해야합니다. 고맙습니다. –

+0

수식 = LEFT (" '"& A1 & REPT ("0", 5), 7)가 추가됩니다. Left는 문자열을 7 자릿수로 줄이고 A1은 A1 셀에서 텍스트를 가져 오며 Rept는 "0"문자를 5 번 반복합니다. 숫자 앞에 '를 붙이는 이유는 내용이 문자열로 처리되기 때문입니다. – Ripster

+0

사실, 파일을 더 내려다보고 난 후에는 수십에서 수백 개의 것으로 보입니다. X.XXXXX ~ XXXX.XXXXX 일 수 있습니다 .XXXXX는 다음과 같이 유지해야합니다./ –

관련 문제