VBA中的偏移1向右移动6,但偏移-1则向左移动1

时间:2016-07-21 15:47:34

标签: excel vba excel-vba

所以我使用几个计数器来查看我的工作表并检查单元格左侧和右侧的值。显示此消息框时,它显示:

右细胞柱:14

当前细胞柱:8

左细胞栏:7

换句话说,左边的单元格是左边的1列,就像它应该的那样。但右边的单元格右边是6列!我只使用1作为列移位,并尝试使用变量名,减法和columnOffset:=前缀。我用Google搜索了如何使用Offset函数,但没有发现任何与此类问题有关的内容。

这是我的代码:

MsgBox "Right cell column: " & ActiveSheet.Cells(2, currCount2 - 1).Offset(treeCount - 1, 1).Column & vbNewLine & "Current cell column: " & ActiveSheet.Cells(2, currCount2 - 1).Offset(treeCount - 1, 0).Column & vbNewLine & "Left Cell column: " & ActiveSheet.Cells(2, currCount2 - 1).Offset(treeCount - 1, -1).Column

1 个答案:

答案 0 :(得分:0)

好的,我发布了一个答案,因为搜索此内容的人可能想找到解决方案。问题是合并细胞。在运行这样的代码之前,检查合并的单元格,就像我的情况一样,它将是:

If ActiveSheet.Cells(2, currCount2 - 1).Offset(treeCount - 1, 1).MergeCells Then

然后你想要在MergeArea中找到第一个值:

ActiveSheet.Cells(2, currCount2 - 1).Offset(treeCount - 1, 1).MergeArea.Cells(1, 1).Value

希望这有助于那里的人! :)