내가 LibreOffice와 버전을 사용하고 있습니다 : 4.4.3.2 빌드 ID를 : 40m0를 (빌드 : 2) 로캘 : EN_AULibreOffice와 기본 무시 "일부"... 엔드 형 정의
을 내가 기본 모듈을
하위 또는 함수 전에이 모듈의 상단에나는
Type InitHeadings
MySort_By As Integer
MyCharacter As Integer
MyInitiative As Integer
MyRolled As Integer
MyTotal As Integer
End Type
...
Global InitiativeColumn As New InitHeadings
을하지만 하위를 실행할 때, 중단 점과 '시계'첫 번째 두 개의 필드가 표시되는 InitiativeColumn 개체를 설정합니다.
이 구조체 문서가 그들을 호출로 관련된 내 코드의 나머지 부분은 다음과 같습니다. 나는 다른 곳에서는 그것을 언급하지 않는다. 아무도 왜 처음 두 가지가 작동하지만 나머지는 말할 수 있습니까? 이 코드에서는 두 개의 다른 구조체이 있고 두 필드 모두 마지막 세 필드를 무시합니다. 이거 버그 야?
Sub Main
'Initialise Doc and Sheet Objects
Dim Doc As Object
Doc = ThisComponent
StatsSheet = Doc.Sheets.getByName("Stats")
InitiativeSheet = Doc.Sheets.getByName("Initiative")
CombatSheet = Doc.Sheets.getByName("Combat")
'LOAD HEADING NAMES
'Initiative Sheet
For Column = 0 to 25 'Columns A to Z
MyHeadingName = InitiativeSheet.getCellByPosition(Column,0).String
Select Case MyHeadingName
Case "Sort By"
InitiativeColumn.MySort_By = Column
Case "Character"
InitiativeColumn.MyCharacter = Column
Case "Initiative"
InitiativeColumn.MyInitiative = Column
Case "Rolled"
InitiativeColumn.MyRolled = Column
Case "Total"
InitiativeColumn.MyTotal = Column
End Select
Next Column
End Sub
Sub MyInitiativeButton
'Iterate over a range of cells:
For Row = 1 To 25 'Rows 2 to 26
'Column 3 is column D the "Rolled" column
InitiativeSheet.getCellByPosition(InitiativeColumn.MyRolled,Row).VALUE = Roledice(1,20,0)
Next Row
End Sub
이유가 무엇인지 아직 모르겠다.하지만 해결 방법을 찾았습니다. "Sacrifice1 As Integer", "Sacrifice2 As Integer", "Sacrifice3 As Integer" 마지막 3 가지 문제를 삭제하는 것. 그러나'InitiativeColumn'은'Global InitiativeColumn As New InitHeadings' 선언에도 불구하고 여전히 글로벌하지 않았다. 별도의 글로벌 변수'Global GlobalInitiativeColumn'을 선언하고'InitiativeColumn'을'GlobalInitiativeColumn = InitiativeColumn'으로 지정하면 GlobalInitiativeColumn이 Global으로 WAS되어 작동하는 것을 발견했습니다. –