Excel 오류 1004 "WorksheetFunction 클래스의 속성...을(를) 가져올 수 없습니다."가 일관성 없이 나타납니다.
매크로의 초기 단계에서 열린 다른 스프레드시트에서 작동하는 스프레드시트 내에 VBA 기능이 있습니다.이전에는 정상적으로 작동했지만 최근에 매크로가 실행될 때 1004 오류("WorkshieldFunction 클래스의 RoundDown 속성을 가져올 수 없습니다")가 발생하기 시작했습니다.
오류의 원인(RoundDown을 실행하는 데 문제가 있음)은 이해하지만 매크로에서 오류가 트리거되는 이유를 알 수 없습니다. 이상한 점은 디버그 모드로 들어가 VBE의 코드를 단계적으로 실행해도 오류가 재발하지 않는다는 것입니다.
이런 종류의 오류가 일관성 없이 발생한 유사한 경험이 있고 이를 해결하기 위해 제가 무엇을 할 수 있는지 아는 사람이 있습니까?
저는 VBA/Excel에 상당히 정통하지만, 진단을 위한 추가 단계에 대한 제안은 감사하겠습니다.오픈된 스프레드시트가 준비되지 않은 것에 문제가 있는 것인지 궁금합니다.
코드는 여기 있습니다.주석이 표시된 라인에서 오류가 발생합니다.
Public Function GetDatesA(sWorkbookname As String, sSheetname As String, sCell As String) As Variant
Dim vDateList() As Variant
Dim currentCell As Range
Dim n As Long
Set currentCell = Workbooks(sWorkbookname).Worksheets(sSheetname).Range(sCell)
n = 0
Do
If Trim(currentCell.Value) = "" Then
Exit Do
Else
ReDim Preserve vDateList(0 To 1, 0 To n)
vDateList(0, n) = WorksheetFunction.RoundDown(currentCell.Value, 0) 'error occcurs on this line
vDateList(1, n) = currentCell.Column
'Debug.Print currentCell.Value
End If
Set currentCell = currentCell.Offset(0, 1)
n = n + 1
Loop While currentCell.Column < XL_LAST_COLUMN
GetDatesA = vDateList
End Function
기타 세부 정보는 다음과 같습니다.
엑셀 버전: 2010
열려 있는 파일이 로컬로 내 C: 드라이브에 있고, 매크로는 네트워크의 스프레드시트에 있습니다.
두 파일의 파일 형식은 .xls(예: Excel 2003)입니다. 이를 변경할 수 있는 옵션이 없습니다.
Windows 7(관련성이 있다고 생각되는 것은 아님)
제가 이미 시도한 두 가지 사항은 다음과 같습니다.
다른 워크시트 함수(예: Min(currentCell)를 대체하고 동일한 문제를 발생시킵니다.
파일을 열면 이미 문제가 해결되는 것 같습니다. 매크로가 포함된 기본 워크북이 아닌 열려 있는 워크북이 매크로에 대해 활성화되지 않아 방해가 되는 방법이 있는지 궁금합니다.하지만 이것이 원인이라고 해도 어떻게 해야 할지 모르겠어요!
아이디어 있어요?
이 오류는 워크시트 함수에 전달된 인수가 올바른 유형이 아니거나 단순히 의미가 없는 경우에 자주 발생합니다.
예를 들어, 전화할 때 이런 문제가 있었습니다.WorksheetFunction.Asin
인수가 1보다 큽니다.당신의 경우에는, 아마currentCell.Value
숫자와 관련된 지역 설정에 맞지 않는 값입니다.
네, 오류 메시지가 정말 오해입니다.
Transcose, MMult, Mult를 사용하여 "Worksheet Function Class의 * 속성을 가져올 수 없습니다" 오류가 발생했습니다.MD term 및 Minverse 함수입니다.
Editer의 특정 모듈의 선언(실제 코드 앞) 섹션에 "옵션 베이스 1"을 넣어 코드를 실행할 수 있었습니다.
Excel은 빈 셀의 행과 열을 추가하는 "옵션 기준 0"을 가정합니다.이렇게 하면 오류가 발생하며 즉시 알 수 없습니다.
저는 전에 이것을 접한 적이 있는데, 안드레가 위에서 말한 것처럼 기준 범위가 말이 되지 않았기 때문입니다.
하십시오..Cells(11, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("AC8:C" & n), "S")
범위를 확인해 보십시오...이해가 안 돼.범위를 수정했습니다."AC8:C"
"AC8:AC"
완벽하게 입니다.
언급URL : https://stackoverflow.com/questions/10635048/excel-error-1004-unable-to-get-property-of-worksheetfunction-class-appear
'programing' 카테고리의 다른 글
express.js에서 HTTPS 사용 (0) | 2023.05.22 |
---|---|
Python Pandas:열이 특정 값과 일치하는 행 색인 가져오기 (0) | 2023.05.22 |
ReSharper를 사용하여 솔루션에서 사용되지 않는 메서드를 나열하려면 어떻게 해야 합니까? (0) | 2023.05.22 |
다른 Git Merge 전략을 언제 사용하시겠습니까? (0) | 2023.05.22 |
각각 하나의 스키마로 여러 개의 데이터베이스를 사용하는 것이 좋습니까, 아니면 여러 개의 스키마로 하나의 데이터베이스를 사용하는 것이 좋습니까? (0) | 2023.05.22 |