Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel忽略从vb.net设置缩进级别_Excel_Vb.net - Fatal编程技术网

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

我有一个控制Excel的VB.NET应用程序。无论我如何尝试设置单元格的
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。