엑셀의 mod
함수와 동일한 vba가 있습니까?VBA는 Excel의 mod 함수와 동일합니다.
답변
당신은 mod operator을 원합니다. 추가
The expression a Mod b is equivalent to the following formula:
a - (b * (a \ b))
편집 :
Excel에서 VBA 함수는 정수를 반환하는 부동 소수점 연산을 사용하여 (그리고 float
을 반환) 때문에 당신이 고려해야 할 수있는 몇 가지 특별한 경우가있다. 이 때문에, 부동 소수점 숫자로 mod
를 사용하여 특별한주의가 필요할 수 있습니다
- Excel의 결과를 정확히 예측하는 것이 무엇과 일치하지 않을 수 있습니다
; 이것은 간단히 here (see topmost answer) 및 큰 길이 here에 적용됩니다.
@ André가 의견에서 지적한 바와 같이 음수는 예상 한 것과 반대 방향으로 반올림됩니다. 그가 제안하는
Fix()
기능은 here (MSDN)으로 설명됩니다.
Mod
operator는 MOD
function 대략 동등하다 :
number Mod divisor
MOD(number, divisor)
가 대략 동일하다.
복제에가는 길 엑셀의 VBA에서 MOD(a,b)
는 기능이 (가) 있습니다 VBA에서 XLMod(a,b)
을 사용하는 것입니다 : 당신의 VBA 모듈에
Function XLMod(a, b)
' This replicates the Excel MOD function
XLMod = a - b * Int(a/b)
End Function
을 (
는 엑셀 MOD 매우 조심 a, b) 함수와 VBA a Mod b 연산자로 구성됩니다. Excel은 부동 소수점 결과를 반환하고 VBA는 정수를 반환합니다. 엑셀 = 모에서
(90.123,90)은 0.123000000000005 대신 VBA 90.123 모에서 0.123 90 명 0을 반환 그들은 확실히 동등하지 않은
반환! 등가
은 : Excel에서 : 라운드 (MOD는 (90.123,90) 3) VBA에서 0.123 및 복귀 = ((90.123 * 1000) 모 90000)/1000은 0.123
정상 복귀 대답은 실제로 잘못되었습니다.
제안 식 : 모든 경우에 당연히 0이다 a - a
: a - (b * (a \ b))
가 해결됩니다.그냥 말하고 싶은 경우
a - (b * FIX(a \ b))
\ 연산자는 /운영자 결과 모든 나머지를 폐기하고 오직 정수 부분을 유지 expression2를로 나눈 expression2의 정수 몫이다 \ 과 동일하지 않다. 이것을 잘라내 기 (truncation)라고합니다. /Operator (Visual Basic)는 나머지 부분을 소수 부분으로 유지하는 전체 지수를 반환합니다. https://msdn.microsoft.com/en-us/library/0e16fywh.aspx –
을하지만 : 수 (a)는 음수가 될 수있는 경우, 이것을 사용,
a - (b * INT(a \ b))
또는 :
올바른 방정식은 이상한 반복과 균등 한 반복 사이의 차이는 잘 작동합니다.
If i Mod 2 > 0 then 'this is an odd
'Do Something
Else 'it is even
'Do Something Else
End If
- 1. Excel 2003의 VBA는
- 2. VBA는 말씀에서 메일을 보낼 + 2007
- 3. PosthreadMessage와 동일합니다.
- 4. Excel의 수식과 같은 함수 사용
- 5. 함수와 변수
- 6. VBA는 과거 코드 변경 사항의 캐시를 유지합니까?
- 7. ADOBE에서 Command.Prepare를 사용하는 경우 VBA는 무엇입니까?
- 8. Linux에서 GetTcpTable이 동일합니다.
- 9. .Net에서 SAX와 동일합니다.
- 10. svn에서 perforce 작업과 동일합니다.
- 11. NET에서 NSOperationQueue와 동일합니다.
- 12. ModX 청크와 동일합니다
- 13. -doCommandBySelector :?의 iPhone과 동일합니다.
- 14. V8의 SpiderMonkey의 catch와 동일합니다.
- 15. win32com xlrd의 sheet.ncols와 동일합니다.
- 16. C/C++ '계속'VB6에서 동일합니다.
- 17. PHP에서 C# TempData와 동일합니다
- 18. NSScroll보기에서 contentsize와 contentOffset이 동일합니다.
- 19. VisualBasic Convert.FromBase64String은 PHP에서 동일합니다.
- 20. Telerik와 동일합니다. DetailView
- 21. .net php preg_replace와 동일합니다.
- 22. C#의 Jaxb와 동일합니다.
- 23. fgets는 C++에서 동일합니다.
- 24. pip는 "easy_install"과 동일합니다.
- 25. Pyglet : pygame.Rect와 동일합니다
- 26. generate_series()는 MySQL에서 동일합니다
- 27. XML은 Android의 loadAnimation과 동일합니다.
- 28. Objective C에서 QPainter와 동일합니다.
- 29. Mod * .html 파일 (CodeIgniter)을 다시 작성하는 Mod Rewrite
- 30. Mod 재 작성 문제
'(a/b) 수정 '의'(a \ b)'를 변경하는 것이 좋습니다. 그렇지 않으면 decimal 인수에 문제가있을 수 있습니다. 수식을'a = 1.75'와'b = 1'로 시도하면 내 요점이 보일 것입니다. –
제안 된 공식이 잘못되어 항상 0을 대답으로 생성합니다. – PSVSupporter
@PSVSupporter'\'연산자를'/'연산자와 혼동하는 것 같습니다. 그들은 다르다. – egrunin