我有一个宏在大表中进行更改。 目前我显示一个msgbox()我做的每一个变化,这是相当侵略。 相反,我想将所有这些更改写入日志文件。如何写入其他工作表中的当前单元格
但我不想记住我在日志文件的哪一行,如果我可以避免它。
所以我需要一种方法来写入日志文件中的CurrentCell,而不激活它,然后将CurrentCell移动一行。
有没有简单的方法来做到这一点?
thanx,Gijs。
我有一个宏在大表中进行更改。 目前我显示一个msgbox()我做的每一个变化,这是相当侵略。 相反,我想将所有这些更改写入日志文件。如何写入其他工作表中的当前单元格
但我不想记住我在日志文件的哪一行,如果我可以避免它。
所以我需要一种方法来写入日志文件中的CurrentCell,而不激活它,然后将CurrentCell移动一行。
有没有简单的方法来做到这一点?
thanx,Gijs。
要在工作表中获取当前单元格,我相信您需要激活它,但是可以关闭屏幕更新,以便用户实际上没有察觉到焦点的变化。
下面的代码执行此操作,获取工作簿工作表2上活动单元格的地址,将其输出到调试菜单,然后将光标移动到下一行,然后交换回当前工作表并转动屏幕更新:
我希望这有助于 安德鲁
Sub MoveToNextCell()
'Turn off screen updates
Application.ScreenUpdating = False
'Get the active cell in worksheet 2
ThisWorkbook.Sheets(2).Activate
'Execute the movement
Debug.Print "Pre-movement address: " & Application.ActiveCell.Address
ThisWorkbook.ActiveSheet.Cells(Application.ActiveCell.Row + 1, Application.ActiveCell.Column).Select
Debug.Print "Post-movement address: " & Application.ActiveCell.Address
'revert back to the original worksheet
ThisWorkbook.Sheets(1).Activate
'Turn screenupdates back on
Application.ScreenUpdating = True
End Sub
OP特别要求一种不需要激活单元的解决方案。使用Activate方法简单地使用ActiveCell或Selection对象几乎不是一个好主意。 –
是的,但是OP也说:“但是我不想记住我在日志文件中的哪一行,如果我能避免的话。”这是我通常会这样做的方式,以避免使用激活单元方法 - 即只使用一个整数变量来包含行计数,每次输入后递增。 不是我个人会这样做的方式,但最接近我可以达到规定的要求。 –
是的,是有办法做到这一点。请编辑您的问题以包含您的代码的相关部分。此外,[看到此](http://stackoverflow.com/help/on-topic) – ARich
你可能想看看[这个](http://stackoverflow.com/questions/71180/how-can- i-find-last-row-that-contains-data-in-the-excel-sheet-with-a-macro)。 –