Excel忽略从vb.net设置缩进级别
我有一个控制Excel的VB.NET应用程序。无论我如何尝试设置单元格的Excel忽略从vb.net设置缩进级别,excel,vb.net,Excel,Vb.net,我有一个控制Excel的VB.NET应用程序。无论我如何尝试设置单元格的IndentLevel,它都不会保持不变。即使后续调用以获取IndentLevel显示它确实保持不变,但当控件传递回用户时,单元格不会明显显示缩进,右键单击->格式化单元格,对齐不会显示新值 我试过设置IndentLevel=newValue,循环AddIndent(),循环InsertIndent,设置InsertIndent(newValue) 将单元格设置为Excel.Range=activeWorksheet.Ran
IndentLevel
,它都不会保持不变。即使后续调用以获取IndentLevel
显示它确实保持不变,但当控件传递回用户时,单元格不会明显显示缩进,右键单击->格式化单元格,对齐不会显示新值
我试过设置IndentLevel=newValue
,循环AddIndent()
,循环InsertIndent
,设置InsertIndent(newValue)
将单元格设置为Excel.Range=activeWorksheet.Range(“B2”)
将新缩进变为整数
执行当前单元格。然后执行第0行
currCell.IndentLevel=newIndent
如果结束
currCell=currCell.Offset(1,0)
环
令人恼火的是,VBA等价物工作得很好:
子测试()
将单元格设置为Excel.Range
设置currCell=ActiveSheet.Range(“B2”)
将新缩进变为整数
执行当前单元格。然后执行第0行
currCell.IndentLevel=newIndent
如果结束
设置currCell=currCell.Offset(1,0)
环
端接头
VB.NET和VBA代码实际上并不等同ActiveSheet
动态跟踪实际的活动工作表,而ActiveSheet
变量不跟踪。在该循环中插入一个MsgBox(currCell.Address(External:=True))
。@GSerg,这并没有改变行为。当时的想法是什么?@Dan试图验证您试图影响正确工作簿中正确工作表上的正确单元格。@GSerg-我也有类似的想法。我更新了代码,用“新”缩进级别修改单元格内容。正确的单元格值将按预期更新。更疯狂的是,Excel正在报告新的缩进级别,即使图形没有显示它!这是我在设置缩进后的新行:currCell.Value=currCell.Value&“(&currCell.IndentLevel&”
在Excel文件中有一个VBA宏,从VBA端报告缩进级别。从VB.NET设置IndentLevel后,从VB.NET调用该宏(Application.Run(“该宏”)
)。如果它以不同的方式报告(并且您已经确认它是同一个单元格),那么.NET包装器显然会缓存该值并报告缓存的值,但不会将其传播到Excel。