求VBA编码,不打开工作表情况下选定区域的替换。

Sheets("票据打印").Select
Range(Cells(4, 2), Cells(a, 2)).Select '定位选定使用范围
Selection.Replace What:="", Replacement:="以下空白", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
你好!对VBA基本是白丁。请帮忙把这句改为不打开“票据打印”页就可以写入。内容是查找选定区域的空白单元格以“以下空白”填充。
谢谢!

为什么要不打开的情况下?
宏是内嵌在Excel中的,不打开就不会运行。如果一定要不打开这个Excel,也必须要另外打开别的Excel,然后调用别的VBA来处理此表。当然,最好就直接改用VB而不是用VBA。追问

哦,可能我没讲清楚。我是在账目工作簿的“清单”页操作,把需要打印票据的信息转给“票据打印”页。如果每次都显示“票据打印”页影响运行速度。谢谢!

追答

Sheets("票据打印").Range(Cells(4, 2), Cells(a, 2)).Replace What:="", Replacement:="以下空白", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

追问

你是拿这句Sheets("票据打印").Range(Cells(4, 2), Cells(a, 2)).覆盖了Selection.这句吗,然后接着其它内容Replace What:="",、、、、、、
我试了一下,提示“应用程序定义或对象定义错误”,是我那没搞对吗?

追答

疏忽了,Range不能选定非活动工作表区域并进行查找替换。不好意思。
改成如下吧:(你查找的范围是第4行到第a行)
for i=4 to a
if Sheets("票据打印").cells(i,2)="" then Sheets("票据打印").cells(i,2)="以下空白"
next i

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-29
fiberzhw 这样修改肯定出错啦,这段代码是用宏来录制的,如果要达到你的要求,必须要重新用VBA来制作,不能用录制宏!

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

求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...

excelVBA在不打开工作薄情况下提取单元内容excelvba不打开表格读取数据...
Sub 不打开工作薄提取内容()Sheet18.Range(\\"CL14\\").FormulaR1C1=\\"='F:\\\\SINO管理学\\\\NWE \\\\工作文档\\\\[统计50.xls]审核表'!R[-6]C[-87]\\"End Sub

vba 复制(不打开)指定工作表中的sheet到当前已有sheet中
不打开的情况下,其内容是不可能被复的。但也并不说不能读取其中内容,内容还是可以读取的。

求excel中删除后台sheet的指定区域的vba代码
Sub test1()With Worksheets("Sheet1") Range(Cells(500, 30), Cells(600, 50)).ClearContentsEnd WithEnd SubSub test2()Worksheets("sheet1").ActivateRange(Cells(500, 30), Cells(600, 50)).ClearContentsEnd Sub两种方法解决。test1,使用with test2,直接激活工作表Sheet1 ...

求VBA高手,把工作簿的特定区域,复制粘贴到新工作簿中。
cValue = GetInfoFromClosedFile(FolderName, wbList(i), "BAI", "B3")Cells(r, 1).Formula = wbList(i)Cells(r, 2).Formula = cValue 这三句替换成下面的代码 Cells(r, 1).Formula = wbList(i)For j = 2 To 23 cValue = GetInfoFromClosedFile(FolderName, wbList(i), "BAI"...

在excel中如何使用VBA宏代码快速把一个工作簿中不同工作表的固定单元格...
"汇总"For Each tmpSheet In ThisWorkbook.Worksheets With tmpSheet If .Name <> "汇总" Then For C = 1 To 6 mySheet.Cells(R, C) = .Cells(1, C)Next mySheet.Cells(R, C) = .Name R = R + 1 End If End With Next End Sub '如果你已经建好了“汇总”表,请先删除之。

excelvba如何不打开工作表读取数据
在Excel VBA中,如果你希望不打开工作表而直接读取数据,一种常见且有效的方法是使用ADODB(ActiveX Data Objects)来连接Excel文件,并将其视为数据库表进行查询。这种方法允许你直接从Excel文件中检索数据,而无需打开Excel界面,也不会显示任何表格或图片。首先,你需要在VBA编辑器中引用Microsoft ActiveX ...

VBA问题:跳过空行,将单元格区域的内容以文本格式制到另一工作表...
您可以参考下面的代码,根据您的实际需要修改下 Sub CopyfromSheet1()Dim sht1 As Worksheet, sht2 As Worksheet, lngRow1&, lngRow2& Set sht1 = Worksheets("Sheet1")Set sht2 = Worksheets("Sheet2")For lngRow1 = 5 To 100 If sht1.Cells(lngRow1, 2) <> "" Then lngRow2 = ...

相似回答
大家正在搜