跨工作表传递单元格值:非对齐单元格赋值失败求助
跨工作表非对齐单元格的值传递问题
需求:在Sheet19和Sheet47之间传递单元格值,两个工作表的单元格位置不对齐;此前用冒号指定连续范围能成功传递,但用逗号指定不连续范围时失败,且Sheet19的G76必须保持空白。当前尝试的代码如下:
Sheet19.Range("F76,H76").Value = Sheet47.Range("I3,J3").Value 'To - From
问题原因
用逗号指定的不连续Range区域,直接通过.Value批量赋值时,VBA无法自动匹配两个不连续区域的单元格对应关系,导致赋值失败。
解决方法
方法一:逐个单元格赋值(最直接可靠)
直接分别给每个对应单元格赋值,精准控制目标单元格,同时保证G76保持空白:
Sheet19.Range("F76").Value = Sheet47.Range("I3").Value ' 把Sheet47的I3值传给Sheet19的F76 Sheet19.Range("H76").Value = Sheet47.Range("J3").Value ' 把Sheet47的J3值传给Sheet19的H76
方法二:数组循环批量赋值(适合扩展更多单元格场景)
如果后续需要处理更多不连续单元格,可以将源和目标单元格地址存入数组,循环完成赋值:
Dim sourceAddrs As Variant Dim targetAddrs As Variant Dim i As Integer sourceAddrs = Array("I3", "J3") targetAddrs = Array("F76", "H76") For i = LBound(sourceAddrs) To UBound(sourceAddrs) Sheet19.Range(targetAddrs(i)).Value = Sheet47.Range(sourceAddrs(i)).Value Next i
内容的提问来源于stack exchange,提问作者BrentJohn
相关产品推荐
相关产品推荐

