粘贴数据到Excel单元格区域时如何防止自动调整行高?
解决Excel粘贴二维数组时自动调整行高的问题
可以通过两种VBA方式直接避免写入数组后自动调整行高,无需后续再手动重置:
方法一:提前设置目标区域固定行高
先给目标区域的行设置固定行高,再写入数组数据。因为Excel只有在行高处于"自动调整"状态时才会随内容变化,固定行高后不会自动改变。Sub WriteArrayWithFixedRowHeight() Dim dataArr As Variant ' 替换为你的实际二维数组 dataArr = Sheet1.Range("SourceDataRange").Value Dim targetRng As Range Set targetRng = Sheet2.Range("TargetRange") ' 设置固定行高(可根据需求调整数值,比如默认15) targetRng.Rows.RowHeight = 15 ' 将数组写入目标区域 targetRng.Value = dataArr End Sub方法二:关闭目标区域的自动调整行高属性
直接禁用目标行的自动调整行高功能,再写入数组:Sub WriteArrayWithoutAutoFit() Dim dataArr As Variant dataArr = Sheet1.Range("SourceDataRange").Value Dim targetRng As Range Set targetRng = Sheet2.Range("TargetRange") ' 关闭自动调整行高 targetRng.Rows.AutoFit = False ' 写入数组数据 targetRng.Value = dataArr End Sub
核心逻辑:只要让目标行的行高处于手动固定状态,而非自动适应状态,写入大段文本时就不会触发Excel的自动行高调整。
内容的提问来源于stack exchange,提问作者Ale
相关产品推荐
相关产品推荐

