求助帖,VBA一个列数据转行数据实在不懂,总显示下标越界错误

m0_55547585 2025-01-15 00:17:09

Sub CopyDataFromClosedWorkbookToAnother()
    Dim sourceWorkbookPath As String
    Dim sourceWorkbook As Workbook
    Dim targetWorkbook As Workbook
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim sourceRange As Range
    Dim targetRange As Range
    
 
    sourceWorkbookPath = "D:\1111.xlsx" ' 替换为实际的文件路径
    
    ' 设置目标工作簿(当前工作簿)
 Set targetWorkbook = Workbooks("2025环保数据表.xlsm")
    
    ' 在后台打开源工作簿(不显示警告信息)
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    Set sourceWorkbook = Workbooks.Open(sourceWorkbookPath)
    On Error GoTo 0
    
    If sourceWorkbook Is Nothing Then
        MsgBox "无法打开源工作簿,请检查路径是否正确!", vbCritical
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
        Exit Sub
    End If
    
    ' 设置源工作表和目标工作表
    Set sourceSheet = sourceWorkbook.Sheets("Sheet1")
    Set targetSheet = targetWorkbook.Sheets("Sheet3")
    
    ' 设置源数据范围和目标范围
    Set sourceRange = sourceSheet.Range("I3:I14") ' 更正为整个列范围
    ' Set targetRange = targetSheet.Rows(8) ' 更简单的方法,直接设置整行
    ' 或者使用Resize方法,但确保参数正确(这里不需要改变列数,因为我们是列到行的“转置”)
    Set targetRange = targetSheet.Range("C8").Resize(1, sourceRange.Cells.Count) ' 虽然这里Resize的参数是正确的,但直接设置整行更清晰
    
    ' 复制数据(使用Value2进行赋值)
    targetRange.Value2 = sourceRange.Value2 ' 直接赋值整个范围
    
    ' 关闭源工作簿(不保存更改)
    sourceWorkbook.Close SaveChanges:=False
    
    ' 恢复屏幕更新和自动弹出的提示信息
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    
    ' 清理对象变量
    Set sourceRange = Nothing
    Set targetRange = Nothing
    Set sourceSheet = Nothing
    Set targetSheet = Nothing
    ' 注意:sourceWorkbook和targetWorkbook在关闭后会自动设置为Nothing(但targetWorkbook没有关闭)
End Sub

 

 

...全文
557 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
2301_77994268 2025-01-17
  • 打赏
  • 举报
回复

列转行,用函数也比较方便

内容概要:本文围绕基于三重移相控制(TPS)的双有源桥(DAB)高频隔离DC-DC变换器开展系统性研究,重点构建了其在Simulink环境下的高精度仿真模型。研究全面涵盖SPS单相移相、DPS双重重移相与TPS三重移相等多种控制策略的建模、实现与性能对比,深入分析不同模式下变换器的功率传输特性、软开关实现条件及功率回流问题,旨在提升DAB在交直流混合微电网、能量路由器、多端口柔性互联装置等场景中的转换效率与动态响应能力。通过对ZVS(零电压切换)条件的精确控制与移相角参数的优化,有效降低了开关损耗,增强了系统整体能效与运行稳定性。该仿真模型具有良好的可扩展性,适用于复杂电能转换系统的科研验证与工程开发。; 适合人群:电力电子、电气工程及其自动化等相关专业的硕士研究生、博士生、科研人员以及从事新能源变换器、柔性输配电系统设计的工程技术人员。; 使用场景及目标:①掌握双有源桥DAB变换器的基本工作原理及其在高频隔离场合的核心优势;②深入理解三重移相控制策略的设计机理、控制自由度分配及其在效率优化中的关键作用;③构建并调试可用于科研论文撰写、项目申报或实际系统验证的高保真Simulink仿真模型,支撑理论分析与实验对比。; 阅读建议:建议结合MATLAB/Simulink平台进行动手实践,重点关注主电路拓扑搭建、移相控制模块设计、驱动信号时序配置及ZVS实现条件的仿真观测,推荐通过对比SPS、DPS与TPS三种模式的稳态与动态响应曲线,深入掌握各控制策略的适用边界与优化方向。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

2,506

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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