在为特定情况创建宏时,我遇到了问题。我有一个STAAD模型,它有8个梁和10个载荷箱。我想得到所有梁的梁端力,但只加载情况1和2。
这是密码
Sub ExtractLC_Click()
Sheets("COPING BEAM").Range("A:I").ClearContents
'Variable Declaration
Dim lMemberNo As Long
Dim lEnd As Long
Dim lLoadCase As Long
Dim dForceArray(6) As Double
Dim icount As Integer
Dim ret As Boolean
Dim path As String
path = Sheets("Main").Cells(185, 23).Value
Set staad = GetObject(, "StaadPro.OpenSTAAD")
staad.OpenSTAADFile path
'extract beam end forces
lMemberNo = Sheets("Main").Cells(184, 10).Value
For x = 2 To 6
lLoadCase = Sheets("SEISMIC").Range("B" & x).Value
ret = staad.Output.GetMemberEndForces(lMemberNo, lEnd, lLoadCase, dForceArray)
For icount = 0 To 5
Sheets("SEISMIC").Cells(x, 3 + icount).Value = dForceArray(icount)
Next icount
Next x
Set staad = Nothing
End Sub然而,对于这一行:
Output.GetMemberEndForces(lMemberNo, lEnd, lLoadCase, dForceArray)只提取梁的起始力,而不提取端。Excel与STAAD比较
我想两者兼得。是否有某种代码涉及到打开STAAD,复制所有成员的最终力量?谢谢你的帮助!
发布于 2017-11-02 06:58:30
日安!
您可以添加一个循环语句来表示“loop”。
示例:
For lend = 0 to 1
For x = 2 To 6
lLoadCase = Sheets("SEISMIC").Range("B" & x).Value
ret = staad.Output.GetMemberEndForces(lMemberNo, lEnd, lLoadCase, dForceArray)
For icount = 0 To 5
Sheets("SEISMIC").Cells(x, 3 + icount).Value = dForceArray(icount)
Next icount
Next x
next lend尽管您仍然需要编辑代码才能将结果粘贴到不同的单元格中。
https://stackoverflow.com/questions/47069160
复制相似问题