【发布时间】:2019-06-21 16:38:55
【问题描述】:
我正在尝试将海拔 .xyz 文本文件组织成 Visual Modflow 4.2 .VMG 格式以进行地下水建模。高程的具体格式如下:
(488 列,456 行,3 层)
(第 1 层,第 1 列,从下到上的行) (7 个空格) Elevation1 (7 个空格) Elevation2....(7 个空格)Elevation10 (下一行) (7 个空格) Elevation 11....Elevation20 (下一行) ... 海拔456 (第 1 层,第 2 列,从下到上行)
.xyz 文件如下所示:
X 坐标(制表符) YCoord(制表符) Z 坐标 我将它粘贴在前 3 列的活动 Excel 表中。它一直持续到大约 300.000 行。
所以它从第一列从上到下遍历所有行。
我需要制作的文件没有指定坐标,它们只是假设从下到上的顺序,并且坐标已经按照所需的顺序设置了。所以它是每行 10 个高程,每行由 7 个空格分隔。
`Private Sub Elevation_VMG()
Dim ElevacionesArray(1 To 488, 1 To 456) As Variant 'array with 3 layers,
488 columns, 456 rows
Dim I As Integer 'counters
Dim J As Integer
Dim S As Integer
Dim C As Integer
Dim H As Integer
Dim MyFile As String
MyFile = Application.DefaultFilePath & "C:\output.txt"
Close #1
Open "MyFile" For Output As #1
C = 2
For I = 1 To 488 '497 columnas
For J = 1 To 456 '464 filas
ElevacionesArray(I, J) =
ActiveWorkbook.Worksheets("Hoja1").Cells(3, C).Value
C = C + 1
Next J
Next I
For I = 1 To 488
C = 1
For J = 1 To 456
If C >= 10 Then
Write #1, vbNewLine
C = 1
'Array to textfile
Write #1, " " + ElevacionesArray(I, J)
C = C + 1
Next J
Next I
Close #1
End Sub`
我还是 VBA for excel 的新手,所以我认为这是我做错了一些格式,现在我收到 1004 错误。
【问题讨论】:
-
你从哪里得到这个错误?
-
您的代码未编译。请先解决这个问题,否则恐怕没有人可以帮助您。
-
您似乎丢失了
End If- 可能是在'Array to textfile之前,但我们无法确定。 -
您不应该将
Myfile放在Open行的引号中。如果您想使用MyFile变量的内容,则不是。