My Excel Project(2) GaoFeng

gaofengld 2013-06-01 10:37:28
FileModel---------------------------------------------------------------------------

Public Function OpenExcelFile(filePath As Variant, visible As Boolean) As Excel.Workbook

Dim excelApp As Excel.Application

Dim excelBook As Excel.Workbook

Set excelApp = New Excel.Application

excelApp.visible = visible

filePath = DeleteLinefeed(filePath)

Set excelBook = excelApp.Workbooks.Open(filePath)

Set OpenExcelFile = excelBook

End Function

Public Function CloseExcelFile(ByRef excelBook As Excel.Workbook)

Dim excelApp As Excel.Application

Set excelApp = excelBook.Application

excelBook.Close savechanges:=True

Set excelBook = Nothing

excelApp.Quit

Set excelApp = Nothing

End Function

Public Function OpenExcelDialog() As Variant

Dim fileOpen As Variant

fileOpen = Application.GetOpenFilename("Microsoft Excel(*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", multiSelect:=True)

If Not IsArray(fileOpen) Then

ReDim fileOpen(1 To 1)

End If

OpenExcelDialog = fileOpen

End Function

Public Function OpenFileDialog(openType As Integer, multiSelect As Boolean) As Variant

Dim dlgOpen As FileDialog

Dim fileNum As Long

Dim filePathArray As Variant

Set dlgOpen = Application.FileDialog(openType)

With dlgOpen

.AllowMultiSelect = multiSelect

.Filters.Clear

.Filters.Add "Excel Files", "*.xlsx;*.xls"

.Filters.Add "All Files", "*.*"

If .Show = -1 Then

ReDim filePathArray(1 To .SelectedItems.Count)

For fileNum = LBound(filePathArray) To UBound(filePathArray)

filePathArray(fileNum) = .SelectedItems(fileNum)

Next fileNum

Else

ReDim filePathArray(1 To 1)

End If

End With

OpenFileDialog = filePathArray

Set dlgOpen = Nothing

End Function

Public Function GetUsedRangeValues(ByRef myWorkbook As Excel.Workbook) As Variant

Dim myWorksheets As Variant

Dim myWorksheet As Excel.Worksheet

Dim i As Long

Dim j As Long

Dim k As Long

Dim resultArray As Variant

Dim startRow As Integer

Dim startColumn As Integer

Dim endRow As Integer

Dim endColumn As Integer

Dim myRange As Excel.Range

Dim value As String

Set myWorksheets = myWorkbook.worksheets

For Each myWorksheet In myWorksheets

With myWorksheet

startRow = .UsedRange.row

startColumn = .UsedRange.column

endRow = .UsedRange.row + .UsedRange.Rows.Count - 1

endColumn = .UsedRange.column + .UsedRange.Columns.Count - 1

For i = startRow To endRow

For j = startColumn To endColumn

Set myRange = .Cells(i, j)

value = myRange.value

If IsNotNull(value) Then

k = k + 1

Call AppendDimArray(resultArray, myWorkbook.Path & "\" & myWorkbook.Name, k, 1)

Call AppendDimArray(resultArray, .Name, k, 2)

Call AppendDimArray(resultArray, i, k, 3)

Call AppendDimArray(resultArray, j, k, 4)

Call AppendDimArray(resultArray, myRange.value, k, 5)

End If

Set myRange = Nothing

Next j

Next i

End With

Next

Set myWorksheets = Nothing

GetUsedRangeValues = resultArray

End Function

Public Function GetFilePathValues(filePath As Variant) As Variant

Dim myWorkbook As Excel.Workbook

Dim resultValueTmp As Variant

Dim resultValue As Variant

Dim i As Integer

For i = LBound(filePath) To UBound(filePath)

Set myWorkbook = OpenExcelFile(filePath(i), False)

resultValueTmp = GetUsedRangeValues(myWorkbook)

Call AppendLinesOFArray(resultValue, resultValueTmp)

Set resultValueTmp = Nothing

Call CloseExcelFile(myWorkbook)

Next i

GetFilePathValues = resultValue

End Function


FileModel---------------------------------------------------------------------------

...全文
199 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕“分布式电源接入配电网承载力评估方法”的研究展开,重点复现了一项基于双层鲸鱼优化算法求解的核心学术论文,结合Matlab编程实现,对IEEE 33节点配电网系统进行建模与仿真分析。研究旨在科学评估在大规模分布式电源接入背景下配电网的承载能力,构建了综合考虑系统运行安全性、电能质量、网络损耗及电压稳定性等多重约束条件的优化评估模型,并采用高效的智能优化算法进行求解,有效提升了评估精度与计算效率,为新能源并网规划、电网扩容改造及运行决策提供了可靠的理论依据和技术支撑。该资源不仅提供完整的代码实现,还深入解析算法设计逻辑与模型构建流程,具有较强的科研复现价值和工程参考意义。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力,从事新能源并网、智能配电网规划、电力系统优化、分布式能源管理等方向的研究生、科研人员及电力行业工程技术人员。; 使用场景及目标:① 学习并掌握分布式电源接入对配电网影响的量化评估方法;② 深入理解双层优化架构与智能算法(如鲸鱼优化算法)在复杂电力系统问题中的应用机制;③ 获取可运行、可调试的Matlab代码资源,用于科研论文复现、课题研究仿真、课程设计或工程项目前期论证。; 阅读建议:此资源以核心论文的技术路线为基础,强调理论与实践相结合。建议读者在阅读过程中结合电力系统潮流计算、约束优化等基础知识,逐步理解模型构建思路,并动手运行与调试所提供的Matlab代码,通过参数调整与结果分析深化对算法性能与工程适用性的认知,从而真正实现从“看懂”到“掌握”的转化。
内容概要:本文系统阐述了一种基于高热点算法的数据驱动与多离散场景分布鲁棒优化方法,聚焦于电热综合能源系统的协同优化问题。研究融合双层鲸鱼优化算法、非合作博弈理论与居民负荷分层调度模型,构建了兼顾不确定性与多方利益博弈的复杂系统优化框架,并通过Matlab代码实现了完整的建模、求解与仿真流程,充分体现了数据驱动与鲁棒优化在现代综合能源系统中的应用价值。; 适合人群:具备电力系统分析、优化算法及Matlab编程基础的科研人员与高校研究生,尤其适用于从事能源互联网、综合能源系统调度、鲁棒优化与智能算法应用等相关领域研究的专业人士。; 使用场景及目标:①实现电热综合能源系统的多能协同与优化调度;②应对源荷不确定性下的多场景鲁棒决策问题;③设计基于博弈机制的负荷侧资源分层调控策略;④为高水平学术论文复现、科研项目开发及算法验证提供可运行、可扩展的Matlab代码支持。; 阅读建议:建议结合网盘提供的完整代码与案例数据,按照技术路线逐步学习,重点关注双层优化结构的设计逻辑、非合作博弈的数学建模方式以及鲸鱼算法在多场景鲁棒优化中的实现细节,通过调试与修改代码深化对核心算法与系统模型的理解,提升科研实践与创新能力。

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧