数码资讯
WPS别人做的VBA如何改名字(请问如何批量修改vba中包含本xls的名字?我要对一系列exce)
1.请问如何批量修改vba中包含本xls的名字?我要对一系列exce
你表述不太清楚,不知道你的目的要做什么,如果是希望把很多诸如21。
xls\22。xls\23。
xls这样的工作簿内容汇集到一个"编号。xls"的工作簿里的话,可以用下面的代码: Sub hz() Application。
ScreenUpdating = False On Error Resume Next For i = 21 To 23 Workbooks。 Open (ThisWorkbook。
Path & "\" & i & "。xls") ActiveSheet。
Range("C3:D7")。Copy Windows("编号。
xls")。ActiveSheet。
[A65536]。End(3)。
Offset(1) ActiveWorkbook。Close savechanges:=False Next End Sub 具体的见下面的附件,你把附件放到你存放21\22\23的文件夹里,然后点击一下按钮,就可以得到结果。
当然如果你还有很多,工作簿只要修改FOR循环的结束数字就可以了,别的都不用动。

2.excel中用vba自定义函数问题我相将附件中第一列姓名和第三列 爱问知
诚如楼上所述,这个功能用Excel内置的函数解决起来更方便。
不过我想楼主可能是想借此学习VBA,给出几点拙见: 1、养成良好的编程习惯 这个可能体现在很多方面,最基础的要数命名了,变量的命名、过程和函数的命名等。等程序一复杂,如果胡乱命名会带来很多麻烦,尤其是做维护的时候; 2、关注程序的执行效率 循环是编程时常用的一个语句,不过某些指令不用循环也能实现的话,应该不用循环,毕竟循环的执行效率差多了。
3、写自定义函数的注意事项 自定义函数是在系统内置函数解决不了问题时的替代品,它的执行效率是不如内置函数的。当自定义函数定义得越复杂时,需要的计算过程也越多,计算时响应的速度也会慢下来。
所以有必要定义一下自定义函数的易失性,如定义成非易失性函数的代码是—— Application。 Volatile (False) 下面给出比循环更快的Find方法: Option Explicit Function CheckExist(rngSource As Range, rngCompare As Range) As String Dim c As Range Application。
Volatile (False) '定义函数为非易失性函数 Set c = rngSource。Find(rngCompare, LookIn:=xlValues) If Not c Is Nothing Then CheckExist = "有" End Function 补充: 在你的代码基础上改,你比较一下跟你的有何不同就明白为什么你的得不出正确结果了。
在B2里输入公式:=比较(A2,$C$3:$C$21),其余下拉。 Option Explicit Function 比较(dy As Range, dr As Range) As String On Error GoTo 0 Dim a1 As Integer, a2 As Integer, b1 As Integer, b2 As Integer a1 = dy。
Cells(1)。Row a2 = dy。
Cells(dy。Cells。
Count)。Row b1 = dr。
Cells(1)。Row b2 = dr。
Cells(dr。Cells。
Count)。 Row Dim i As Integer, j As Integer For i = a1 To a2 For j = b1 To b2 If Cells(i, 1) = Cells(j, 3) Then 比较 = 比较 & "有" Next j Next i End Function。

3.如何用VBA快速修改文件名
Sub 批量改名()
Dim FolderName As String, wbName As String, cValue As Variant
Dim wbList() As String, wbCount As Integer, i As Integer, str As String, exname As String
FolderName = "G:\360data\重要数据\桌面\新建文件夹" '文件夹路径
'创建文件夹中工作簿列表
wbCount = 0
wbName = Dir(FolderName & "\" & "*.xls*")
While wbName <> ""
wbCount = wbCount + 1
ReDim Preserve wbList(1 To wbCount)
wbList(wbCount) = wbName
wbName = Dir
Wend
If wbCount = 0 Then Exit Sub
'从每个工作簿中获取数据
For i = 1 To wbCount
cValue = GetInfoFromClosedFile(FolderName, wbList(i), "sheet1", "a1")
exname = Mid(wbList(i), InStr(wbList(i), "."))
Name FolderName & "\" & wbList(i) As FolderName & "\" & cValue & exname
On Error Resume Next
Name FolderName & "\" & wbList(i) As FolderName & "\" & cValue & i & exname
Next i
End Sub
'====================从未打开表中获取信息===========================
Private Function GetInfoFromClosedFile(ByVal wbPath As String, _
wbName As String, wsName As String, cellRef As String) As Variant
Dim arg As String
GetInfoFromClosedFile = ""
If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"
If Dir(wbPath & "\" & wbName) = "" Then Exit Function
arg = "'" & wbPath & "[" & wbName & "]" & _
wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1)
r = 0
On Error Resume Next
GetInfoFromClosedFile = ExecuteExcel4Macro(arg)
End Function
4.Wps表格中怎么设置双击图片就放大的效果
1、可以选择需要插入的单元格图片,然后点击插入中对象工具,如图所示。
2、在弹出来的插入对象对话框选择位图,可能版本不一样出现的效果也不一样,没有关系,只要选择插入的对象格式是图片就可以了。 3、这个时候页面会弹出一个绘画的窗口,选择粘贴来源,在电脑中选择需要插入的图片就可以了。
4、这个时候页面会弹出一个绘画的窗口,选择粘贴来源,在电脑中选择需要插入的图片就可以了。 5、这个是可以调整图片的大小,因为这个时候看到的图片就是放大后的效果,然后把这个对话框叉掉 6、然后调整表格中的图片大小,小一点放进单元格就可以了,然后双击就会调用刚才绘画的对话框,放大效果。
7、然后双击单元格小图片,就会调用刚才绘画的对话框,放大效果。
5.Excel VBA 修改字体问题
字体不加粗,将.Font.Bold=True里的True改为False(有两处)
将F列改为其他 列,请将所有引号里的"F"改为你要的列号字母就行 (有10处)
以下是为你修改后的代码,请将第2行的"F"改为你要的列号
Sub Test()
Const L ="F" '以后如要改到其他列,只要改这个地方
Dim rng As Range, rngC As Range
Dim intRow As Long
Dim cntRow As Long
Dim cnt As Long
Dim n As Long
Dim dat()
Dim strA As String
Application.ScreenUpdating = False
strA = Empty
intRow = Range("A65536").End(xlUp).Row
Set rng = Range("A2:A" & intRow)
cntRow = rng.Rows.Count
strA = "*" & InputBox("输入要搜索的内容") & "*"
Debug.Print strA
If strA = "**" Then Exit Sub
cnt = Application.WorksheetFunction.CountIf(rng, strA)
ReDim dat(1 To cnt, 1 To 1)
n = 1
For Each rngC In rng
If Application.WorksheetFunction.CountIf(rngC, strA) = 1 Then
dat(n, 1) = rngC
n = n + 1
End If
Next rngC
With Range(L & "1:" & L & Range(L & "65536").End(xlUp).Row)
.ClearContents
.ClearFormats
End With
Range(L & "1") = "搜索结果"
With Range(L & "1")
.Interior.ColorIndex = 20
.Font.Name = "宋体" '这里是字体
.Font.Size = 12 '这里是字体大小
.Font.Bold = False '标题行是否加粗
.Borders.LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
End With
With Range(L & "2:" & L & n)
.Value = dat
.Font.Name = "宋体" '这里是字体
.Font.Size = 12 '这里是字体大小
.Borders.LineStyle = xlContinuous
.Font.Bold = False '搜索结果是否加粗
.Interior.ColorIndex = 19
.HorizontalAlignment = xlCenter
End With
Range(L & "2:" & L & n).Sort key1:=Range(L & "2"), order1:=xlAscending
MsgBox (" 共 " & n - 1 & " 件被搜索.")
Application.ScreenUpdating = True
End Sub
