求VBA编码,在不打开待写入的工作表前提下写入内容。

Sheets("入库存档").Unprotect
Sheets("入库存档").Cells(1, 27) = "=COUNTA(C[-26])+1"
Range(Cells(Selection.Row, 1), Cells(Selection.Row, 20)).Select
Selection.Copy
Sheets("入库存档").Select '这句就是必须打开此表才执行下一句
Dim kk As Variant
kk = Range("AA1")
Cells(kk, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AA1") = ""
Sheets("目录").Select
Cells(Selection.Row, 19) = ""
End Sub
此编码是打开工作表写入,求不打开“入库存档”表,直接在目录页状态下写入。
因需要同时打开几个工资表,程序结束时再关闭。所以屏幕感觉是闪动,很烦人。

修改好了,未经测试(因为文件在你那里,你试下吧)
Sheets("入库存档").Unprotect
Sheets("入库存档").Cells(1, 27) = "=COUNTA(C[-26])+1"
Range(Cells(Selection.Row, 1), Cells(Selection.Row, 20)).Select
Selection.Copy
Dim kk As Variant
kk = Sheets("入库存档").Range("AA1")
Sheets("入库存档").Cells(kk, 1).PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks :=False, Transpose:=False
Sheets("入库存档").Range("AA1") = ""
Cells(Selection.Row, 19) = ""
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-23
后面的语句都是基于工作表打开状态下才有效的,不打开怎么行!
如果只是不想页面变换麻烦,你可以临时关闭屏幕显示功能,如:
Application.ScreenUpdating = False
程序执行完后,再恢复显示:
Application.ScreenUpdating = True

求VBA编码,在不打开待写入的工作表前提下写入内容。
修改好了,未经测试(因为文件在你那里,你试下吧)Sheets("入库存档").Unprotect Sheets("入库存档").Cells(1, 27) = "=COUNTA(C[-26])+1"Range(Cells(Selection.Row, 1), Cells(Selection.Row, 20)).Select Selection.Copy Dim kk As Variant kk = Sheets("入库存档").Range("AA1")Sh...

利用VBA程序,如何在不打开另一工作表的情况下,引用另一工作表中的批注...
假设两文件夹分别1和2,可以在A表中写如下宏:sub 批注引用()dim strS as string workbooks.Open Filename:=ThisWorkbook.Path & "\/..\\2\\B.xls", ReadOnly:=True strS = workbooks("B.xls").Sheets("Sheet1").Range("A1").Comment.Text workbooks("B.xls").Close Range("A1") = str...

求VBA编码,不打开工作表情况下选定区域的替换。
宏是内嵌在Excel中的,不打开就不会运行。如果一定要不打开这个Excel,也必须要另外打开别的Excel,然后调用别的VBA来处理此表。当然,最好就直接改用VB而不是用VBA。

excelvba如何不打开工作表读取数据
首先,你需要在VBA编辑器中引用Microsoft ActiveX Data Objects库(通常版本为2.x或6.1),这可以通过VBA编辑器的“工具”->“引用”菜单完成。接着,你可以编写代码来创建一个ADODB.Connection对象,并设置其连接字符串以指向你的Excel文件(通常使用Provider=Microsoft.ACE.OLEDB.12.0或Provider=Microsoft...

...我想用VBA写出来,这样就可以不用打开另外的表也能求值
1、在当前操作工作簿中新建一个工作表,名称为:效率汇总 并把:C520 & CD391 Seat Chassis-Report-Jul-2017.xlsx 工作簿内的效率汇总工作表的全部内容复制到刚刚新建的工作表,而且今后也把数据放在该工作表吧。2、分析你不就是想统计7月1日的设备故障率嘛,初步简化的公式就可改为:=IFERROR(...

求一段excel vba代码
' 2. 在 E 列后插入 F、G、H 列并写入文字 ws.Range("F2").Resize(lastRow - 1, 3).Insert Shift:=xlToRight ws.Range("F2").Value = "Text F"ws.Range("G2").Value = "Text G"ws.Range("H2").Value = "Text H"' 3. 提取 E 列中的数值到 F、G、H 列 ws.Range("F3...

Excel求VBA宏程序,将m行每n行写入新的列
其实在VBA中这个就是一个循环加复制粘贴就完成了。第一步:按Alt+F11打开VBE编辑器第二步:单击菜单栏 插入--模块第三步:在模块中建立一个Sub过程,代码如下:Sub copydate()Dim i%, y%y = 0For i = 1 to 100 Step 10Sheet1.Rows(i & ":" & i+9).Copy Sheets2.Cells(1,y+1)...

用VBA打开工作薄内名称为"xx"的工作表,如果没有此名称的工作表则关闭...
通常的做法是,先循环工作簿内的所有工作表,判断名称,如果发现名为“xx”的工作表则执行打开操作,并跳转过关闭工作簿的位置。在循环后加上 关闭工作簿的动作。因为循环的时候发现有名为“xx”的工作簿会跳过这个操作,所以不用担心打开之后的操作。不知道你的计算逻辑是什么样的,但按照你的要求,...

如何才能自动刷新未打开的工作表"用VBA?
1. 打开Excel VBA编辑器,通过“Alt + F11”快捷键或点击“开发工具”选项卡中的“Visual Basic”按钮。2. 在VBA编辑器中,找到“模块”窗口,选择相应的模块,如果需要创建新模块,可以右击“插入”选项卡中的“模块”。在模块中编写以下代码:vba Sub RefreshUnopenedSheets()Dim wb As Workbook Dim...

如何编写一个自动记录指定单元格输入内容的VBA
你的sheet1工作表与sheet2工作表基本上格式是一样的。为什么不考虑删除sheet1工作表,添加一个《记录添加》窗体,或是运用excel《记录单》功能?尊重你的本意,可以在sheet1中添加一个按钮,指定如下宏 当点击按钮时,将当前指定区域[sheet1.RANGE("A3:H3")]数据输入到sheet2中 'Sub copyrow()Dim ...

相似回答