Excel中如何使用VBA来实现指定的单元格的文字或数据提取记忆功能??注:记忆功能就是记忆所有变动的数据

如题所述

可以在文档内新建一个sheet页或者利用特定的txt文档,在指定单元格变化的时候记录下变化时间和变化值。
在你要监控的单元格所在sheet页的代码里输入如下代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim f As String
f = "d:\a.txt"
Open f For Append As #1
Print #1, Cells(1, 1).Value; Tab; Date; Space(1); Time
Close #1
End If
End Sub
看看是不是你想要的结果,会在D盘根目录生成一个a.txt追问

有VBA代码和详细的操作步骤吗?
你QQ多少?我加你。

追答

用上边那个代码,我是假设你要监控的单元格是A1来写的,想整理打印的话可以复制到excel中在操作,更简洁一些。
操作步骤,在你要监控的单元格所在sheet页名字上点右键,查看代码,然后贴进去,保存就行了,对A1操作几次,然后看D盘的a.txt就行了。

追问

是包括操作的时间也记录下来的吗?
如果我有100个或1000000个的单元格的操作数据要记录呢?是怎么在你提供的VBA代码里添加呢?
我想加你QQ

追答

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1:a10")) Is Nothing And Target.Count = 1 Then
Dim f As String
f = "d:\a.txt"
Open f For Append As #1
Print #1, Target.Address; Tab; target.Value; Tab; Date; Space(1); Time
Close #1
End If
End Sub
假定你要监控的是A1:A10
记录变化单元格地址,变化时间,变化内容

追问

比如我要在
1 A1:O1
2 A11:O11
3 F13:F30

我要的提取格式是:
时间 编号 款式 尺寸(高*宽*数量)
2013-3-29 G-1005 福字 1500*500=5

追答

你还是加我Q吧
壹壹九九四八三八三

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-29
那意思就是 这个记忆功能要对应单元格咯.. 我意思是比如我sheet1里面 AB1 单元格里面有了信息变动, 就需要将这个变动记录在sheet2对应的单元格 对吗?
还是就顺序的记录?追问

对的,但是要按照变动的时间(2013-3-29)一起记录下来。

比如我要在
1 A1:O1
2 A11:O11
3 F13:F30

我要的提取格式是:
时间 编号 款式 尺寸(高*宽*数量)
2013-3-29 G-1005 福字 1500*500=5

第2个回答  2013-03-29
你的记忆是指什么呢?vba运算时通过内存进行记录和运算,想要永久记录只有硬盘了,但是要运算时间内进行记忆可以采用为未知数或者数组赋值进行运算追问

我的想法是:
1 先用VBA来对指定单元格进行记忆式数据提取到另一个工作簿(当然包括变动时的时间也要一起提取)。
2 再另外的工作簿做筛选整理后,再打印。(筛选是按照日期来的)

追答

如果是多个单元格似乎很困难,如果是单个单元格 可以使用 change 事件来做,当然该事件只能适用于工作表的,但是可以应用于控件,要是用于工作表,只用特定的工作表进行检查,例如设置一个单独登陆或者变更表就可以了,这样既可以节约change 事件的检查事件,又避免很多技术难题。如果把可以变更的做成一个控件就会很简单的了。
你说的“记忆”很简单,就是赋值就可以了,如果发生 change事件,令变更内容等于变量,再将变量赋值到指定单元格,同时另一单元格等于当前时间即可。
对于筛选,你可以录制宏,可以录制到的,录制完后自己试着改一下即可。

第3个回答  2013-03-29
Private Sub Worksheet_Change(ByVal Target As Range)
用这个是可以搞定地追问

有详细的 VBA代码  吗?

 

比如我要在
1 A1:O1
2 A11:O11
3 F13:F30

我要的提取格式是:
时间 编号 款式 尺寸(高*宽*数量)
2013-3-29 G-1005 福字 1500*500=5

Excel中如何使用VBA来实现指定的单元格的文字或数据提取记忆功能??注...
可以在文档内新建一个sheet页或者利用特定的txt文档,在指定单元格变化的时候记录下变化时间和变化值。在你要监控的单元格所在sheet页的代码里输入如下代码 Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address = "$A$1" Then Dim f As String f = "d:\\a.txt"Open f For Ap...

在EXCEL中 如何用VBA查找某特定单元格并返回该单元格的行和列值?
代码解析:RngFind过程使用Find方法在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值,并查找该值所在的第一个单元格。第6到第13行代码在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值。应用于Range对象的Find方法在区域中查找特定信息,并返回Range对象,该对象代表用于查找信息的第...

在excel中如何用vba来实现查找特定的字符串?
1、首先打开需要编辑的Excel表格,进入到编辑的的页面中。2、然后在弹出来的窗口中,鼠标右键单击工作表,选择打开“查看代码”。3、然后在弹出来的窗口中,点击输入代码:Sub AAA()Dim I As Long For I = 1 To 1000 '行 范围,自己修改 If InStr(Range("A" & I), "invalidstatus") > 0 ...

用VBA实现Excel中数据的提取并且汇总
例子数据源:程序代码:运行结果:是不是很完美,程序文本:Option Explicit Sub 转换()Dim a1, a2(1 To 1000, 1 To 100), i, j, x, y, m, n Set x = CreateObject("Scripting.Dictionary")Set y = CreateObject("Scripting.Dictionary")a1 = Range("a1").CurrentRegion For i = 1 To...

EXCEL VBA 如何提取制定单元格数据 并记录在另一列单元格内
Sub 按钮1_Click()Dim myRow As SinglemyRow = ActiveSheet.Cells(65536, 2).End(xlUp).RowActiveSheet.Cells(myRow + 1, 2) = ActiveSheet.Range("A1")End Su

excel vba提取内容
1、汉字在前,数字在后面的情形。可以用MID,min, find三个函数来实现提取里面的数字。如图:在B2输入“=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&“0123456789”)),20)”2 、把单元格里面所有的数字都提出来。可以使用宏。先打开VBA编辑器。工具——宏——visual basic ...

如何VBA实现在Excel中自动查找某单元格的内容?
sub test()for i=1 to sheet2.cells(rows.count,3).end(3).row if sheet2.cells(i,3).value=Sheet1.range("B4").value then Sheet2.cells(i,3).select Exit for end if next end sub

excel提取单元格内某字符后面一位的数据全部提取出来 用vba实现
Sub TEST()Dim arr1() As String Dim arr2() As String Dim txt1, txt2, txt3 As String For i = 1 To Range("A65536").End(xlUp).Row arr1() = Split(Cells(i, 1), "张三")If UBound(arr1) > 0 Then For a = 1 To UBound(arr1)txt1 = txt1 & Left(arr1(a), 1...

如何在excel里实现用vba将指定列的内容(包括批注)批量粘贴到该列每个...
这个就可以:Function 批注(rang As Range) As String '提取批注文字函数:只有一个参数,即单元格引用。批注 = rang(1).Comment.Text End Function 直拉用“=批注(A1)",然后十字下拉。

在excel中激活指定内容的单元格,并将其内容删除。不允许替换为“”!用...
Sub 删除()Dim rng As Range For Each rng In Range("a1:f13")If rng.Value = 1 Then rng.ClearContents End If Next End Sub 按f5运行 这个代码是清除a1:f13中=1的单元格内容,不知道是不是你想要的

相似回答