我想将焦点强制到特定的单元格上,我通过XlCall.Excel(XlCall.xlfCaller)参考了这个单元格。我知道如何在VSTO中做到这一点,但有没有办法用ExcelDNA做到这一点?如何使用ExcelDNA选择一个单元格?
1
A
回答
1
一种方法是使用COM自动化接口,就像从VBA或VSTO那样。请确保使用ExcelDnaUtil.Application
作为根的Application
对象。从您从xlfCaller
收到一个COM Range
对象ExcelReference
转换,你可以尝试(这是VB.NET版本):
Private Function ReferenceToRange(ByVal xlRef As ExcelReference) As Object
Dim strAddress As String = XlCall.Excel(XlCall.xlfReftext, xlRef, True)
ReferenceToRange = ExcelDnaUtil.Application.Range(strAddress)
End Function
如果你想坚持使用C API,你首先必须选择正确的表格,然后选择实际的单元格。所以,你可能有:
string myCellSheet = (string)XlCall.Excel(XlCall.xlSheetNm, myCell);
XlCall.Excel(XlCall.xlcWorkbookSelect, new object[] { myCellSheet });
XlCall.Excel(XlCall.xlcFormulaGoto, myCell);
您将无法更改工作表函数的选择,所以我想你是从宏观或带状处理程序调用此。
1
有可能与ExcelDNA做到:
var activeCell = new ExcelReference(5, 5);
ExcelAsyncUtil.QueueAsMacro(() => XlCall.Excel(XlCall.xlcSelect, activeCell));
“ExcelAsyncUtil.QueueAsMacro”就可以跳过去,它取决于从中调用Excel命令上下文。如果你从另一个Excel函数中调用它 - 你应该用QueueAsMacro包装它
相关问题
- 1. 如何选择一个网格单元
- 2. 如何使用jQuery选择(或:不)一个单元格范围?
- 3. 如何使用TreeCursor在SWT树中选择单个单元格
- 4. 如何通过选定的ID选择一个单元格。 SQL
- 5. 选择下一个单元格JTable
- 6. QTableView强制一个单元格选择
- 7. 检测另一个单元格内的单元格选择
- 8. 如何选择与另一个单元格值匹配的单元格vba
- 9. 使用下拉菜单选择一行表格单元格
- 10. 如何选择一个字符串网格的多个单独的单元格?
- 11. 如何获得使用jQuery选择表格单元格的值
- 12. nattable:如何禁用单个单元格选择?
- 13. 如何禁用UITableView的单个单元格的选择?
- 14. 使用UltraWinGrid在同一列中选择多个单元格
- 15. 如何在WPF中选择单元格时选择DataGrid单元格内的TextBox?
- 16. 选择一个表格单元格并让多个单元格瞬间高亮
- 17. 如何从Excel中的单元格中选择一个值
- 18. 如何选择Excel VBA中的上一个活动单元格?
- 19. iOS:如何在UITest中选择一个单元格?
- 20. 如何以编程方式选择一个tableview单元格?
- 21. 如何在swift中一次只选择两个UITableview单元格
- 22. 如何在CellList中取消选择一个单元格Gwt
- 23. 如何选择列直到最后一个非空单元格
- 24. 如何选择一个新的彩色jTable单元格?
- 25. 如何选择SWT表的一个单元格
- 26. 使用SlickGrid选择/焦点单元格
- 27. 使用uitableviewcellselectionstylenone选择UITableView单元格
- 28. 从范围中选择一个单元格或选择
- 29. 如何选择整个行而不是单个单元格
- 30. 如何选择单元格对象如何选择
感谢您的回应!在C#中,我无法访问ExcelDnaUtil.Application上的范围方法,因为它是对象类型的。我应该输入什么类型? – Franchesca
哦,我明白了,我只是用动态:D – Franchesca
这行'XlCall.Excel(XlCall.xlfReftext,xlRef,True)'正在轰炸。我不打算从工作表函数中更改选定内容,但我从工作表函数中获取了xlfCaller。这可能是一个问题吗? – Franchesca