Vba 如何写入其他工作表中的当前单元格
我有一个宏,可以在一个大列表中进行更改。 目前,我为我所做的每一个更改都显示一个msgbox(),这相当有侵入性。 相反,我想将所有这些更改写入日志文件 但是如果可以避免的话,我不想记住我在日志文件中的哪一行 因此,我需要一种方法来写入日志文件中的CurrentCell,而不激活它,然后将CurrentCell向下移动一行 有没有一个简单的方法可以做到这一点Vba 如何写入其他工作表中的当前单元格,vba,logging,xls,Vba,Logging,Xls,我有一个宏,可以在一个大列表中进行更改。 目前,我为我所做的每一个更改都显示一个msgbox(),这相当有侵入性。 相反,我想将所有这些更改写入日志文件 但是如果可以避免的话,我不想记住我在日志文件中的哪一行 因此,我需要一种方法来写入日志文件中的CurrentCell,而不激活它,然后将CurrentCell向下移动一行 有没有一个简单的方法可以做到这一点 thanx,Gijs.要在工作表中获取当前单元格,我认为您需要激活它,但您可以关闭屏幕更新,以便用户实际上不知道焦点的变化 下面的代码执行
thanx,Gijs.要在工作表中获取当前单元格,我认为您需要激活它,但您可以关闭屏幕更新,以便用户实际上不知道焦点的变化 下面的代码执行此操作,获取工作簿工作表2上活动单元格的地址,将其输出到“调试”菜单,然后将光标移动到下一行,然后切换回当前工作表并打开屏幕更新: 我希望这有帮助, 安德鲁
是的,有一种方法可以做到这一点。请编辑您的问题,以包含代码的相关部分。此外,您可能还想看看。OP特别要求提供一种不需要激活电池的解决方案。使用Activate方法来使用ActiveCell或Selection对象几乎从来都不是一个好主意。是的,但OP也说“如果可以避免的话,我不想记住我在日志文件中的哪一行。”这是我通常避免使用activate cell方法的方法,也就是说,只使用一个整数变量来包含行计数,在每个条目后递增。不是我个人的方式,而是我能达到的最接近规定要求的方式。
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