求助帖,VBA一个列数据转行数据实在不懂,总显示下标越界错误
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
相关推荐
vba_获取使用行数和列数
vba_获取使用行数和列数,vba_获取使用行数和列数,vba_获取使用行数和列数
VBA常见错误原因分析
VBA 常见错误调试技巧,是学习Excel VBA的好帮手
excel列转行vba代码
excel获取一年内的周一公式 excel进行列转行的vba代码
不懂html也来学VBA网抓(xmlhttpwinhttp+fiddler).pdf
vba 网抓常用方法: 1、xmlhttp/winhttp 法: 用xmlhttp/winhttp 模拟向服务器发送请求,接收服务器返回的数据。 优点:效率高,基本无兼容性问题。 缺点:需要借助如fiddler 的工具来模拟http 请求。 2、IE/webbrowser 法: 创建IE 控件或webbrowser 控件,结合htmlfile 对象的方法和属性,模拟浏览器操作,获取浏览器 页面的数据。 优点:这个方法可以模拟大部分的浏览器操作。所见即所得,浏览器能看到的数据就能用代码获取。 缺点:各种弹窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE 里根本无法实现
VBA批量处理csv或其他excel文件数据
本资源实现了用VBA(宏)代价遍历文件夹中的csv文件,修改代码也可遍历其他格式的excel文件,并实现了将遍历的结果整合到一个新的excel文件中。


