如何修改VBA宏仅将C2:C20区域导出为记事本TXT文件?
修改VBA宏以仅导出C2:C20区域内容
你当前的宏里,问题出在Range("C2:C20").CurrentRegion这一行——CurrentRegion属性会自动选中包含C2:C20的整个连续非空数据区域,这就是为什么会导出多余内容的原因。
只需要把这一行的.CurrentRegion去掉,直接引用目标区域即可。修改后的完整代码如下:
Sub CrText() Dim c00 As Variant Dim textFilePath As String Dim lngCounter As Long Dim FF As Integer textFilePath = CStr(VBA.CurDir) & "\mTextFile.txt" FF = VBA.FreeFile ' 直接引用目标区域,去掉CurrentRegion c00 = Range("C2:C20").Value Open textFilePath For Output As #FF For lngCounter = LBound(c00, 1) To UBound(c00, 1) Print #FF, Join(Application.Index(c00, lngCounter, 0), vbTab) Next Close #FF Shell "C:\WINDOWS\notepad.exe " & textFilePath, vbNormalFocus End Sub
关键修改说明
- 把
c00 = Range("C2:C20").CurrentRegion改为c00 = Range("C2:C20").Value(.Value可省略,加上更清晰),这样就只会读取C2到C20这个精确范围的内容,不会扩展到其他区域。 - 其余代码逻辑保持不变,依然会将选中区域的内容导出为文本文件并自动用记事本打开。
内容的提问来源于stack exchange,提问作者qplsn99
相关产品推荐
相关产品推荐

