vba上传指定文件ftp服务器

文章目录

    • 一、需求分析:
    • 二、操作流程:
      • 2.1 【开发工具】-【宏】
      • 2.2 【宏】-【编辑】
      • 2.3 【把脚本复制进去】
      • 2.4 脚本如下
      • 2.5 修改位置
        • 2.5.1 修改sheet名称和表格一致
        • 2.5.2 修改Cells(2,3)
        • 2.5.3 修改4 to 100
        • 2.5.4 修改Cells(i,3)
        • 2.5.5 修改发ftp信息
        • 2.5.6 保存脚本
    • 三、添加上传按钮
    • 效果图:

一、需求分析:

  • 在excel表格中指定文件路径,将指定文件上传ftp服务器

二、操作流程:

2.1 【开发工具】-【宏】

在这里插入图片描述

2.2 【宏】-【编辑】

在这里插入图片描述

2.3 【把脚本复制进去】

在这里插入图片描述

2.4 脚本如下

Sub 按钮1_Click()
Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray()
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("sheetName自定义")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(2, 3) <> "" Then
str3 = Replace(Sheet1.Cells(2, 3), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 4 To 100
If mysheet1.Cells(i, 3) <> "" Then
str1 = Replace(Sheet1.Cells(i, 3), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1
str5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open IP地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 密码>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

2.5 修改位置

2.5.1 修改sheet名称和表格一致

在这里插入图片描述

2.5.2 修改Cells(2,3)

  • 指的是地2行
    在这里插入图片描述

2.5.3 修改4 to 100

  • 4指的是从第4行的开始
  • 100指的是从第100行开始
    在这里插入图片描述

2.5.4 修改Cells(i,3)

  • i指的是行,3指的是第几列

2.5.5 修改发ftp信息

  • ip地址
  • 用户名
  • 密码

在这里插入图片描述

2.5.6 保存脚本

在这里插入图片描述

三、添加上传按钮

  • 【开发工具】-【插入表单控件】
    在这里插入图片描述
    -【指定宏】
    在这里插入图片描述
    -【选择指定的宏名】
    在这里插入图片描述
  • 【双击修改按钮名称】

效果图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

校验版本

Sub 文件上传ftp服务器()
Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray(), MyFile As Object
Set MyFile = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("sheetName自定义")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(2, 3) <> "" Then
str3 = Replace(Sheet1.Cells(2, 3), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 4 To 100
If mysheet1.Cells(i, 3) <> "" Then
str1 = Replace(Sheet1.Cells(i, 3), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1If MyFile.FileExists(str4) = True Then
Else
MsgBox str4 & " 文件不存在"
End Ifstr5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open ip地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 密码>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

无校验版本

Sub 按钮1_Click()
Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray()
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("sheetName自定义")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(2, 3) <> "" Then
str3 = Replace(Sheet1.Cells(2, 3), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 4 To 100
If mysheet1.Cells(i, 3) <> "" Then
str1 = Replace(Sheet1.Cells(i, 3), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1
str5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open ip地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 密码>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云存储精华问答 | 云存储是如何工作的?

云存储是一种网上在线存储&#xff08;英语&#xff1a;Cloud storage&#xff09;的模式&#xff0c;即把数据存放在通常由第三方托管的多台虚拟服务器&#xff0c;而非专属的服务器上。今天就让我们来看看关于云陈存储的精华问答吧。1Q&#xff1a;云存储是如何分类的&#x…

mysql如何实现管理权限分离_基于SpringCloud+vue(ElementUI)+mySQL前后端分离设计之--搭建权限管理系统...

权限图&#xff1a;pom.xmlxsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0com.serverauthority0.0.1-SNAPSHOTjarauthorityauthority project for Spring Bootorg.springframework.bootspring-boot-s…

刚刚,Python内幕被爆出!老码农:没控制住,心态已崩!

作为一名老码农&#xff0c;我的心这次凉透了&#xff01;事情起因很简单&#xff1a;前天我晚上正在全国最大的同性组织某Hub上浏览时候&#xff0c;发现这样的一条信息&#xff1a;Python 116K 超过 C、JS, 薪酬排行第一&#xff08;最大招聘网站Indeed.com数据&#xff09;噗…

mysql数据库连接不稳定_连接 MySQL 数据库失败频繁的原因探秘

连接mySQL数据库失败频繁&#xff0c;主要是什么原因造成的? 一年前&#xff0c;我开发了一个网站&#xff0c;租用的是linux下PHPmySQL的虚拟空间&#xff0c;之前一直工作正常。近半年来&#xff0c;却频繁出现连接数据库失败错误(一周1~2次)&#xff0c;需要找空间商重启my…

mysql表空间界限_MySQL5.7 import表结构报错超出表空间界限

事后测试了一下&#xff0c;一下方法就是垃圾&#xff0c;看看可以&#xff0c;别跟着学&#xff01;&#xff01;&#xff01;数据库重启后&#xff0c;问题依然暴露出来了&#xff0c;参数什么的都是扯&#xff0c;擦记录一个困扰我好几天的问题。先贴上报错&#xff1a;spac…

vba上传文件到ftp服务器指定目录下面

vba上传文件到ftp服务器指定目录 脚本形式 文章目录1. 测试版本无校验&#xff1a;2. 测试版本有检验3. 文件不存在校验版本4. 文件不存在校验必填项校验版本1. 测试版本无校验&#xff1a; Sub 按钮1_Click() Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, s…

mysql获取用户权限api_AnalyticDB MySQL服务关联角色

AliyunServiceRoleForAnalyticDBForMySQL介绍角色名称&#xff1a;AliyunServiceRoleForAnalyticDBForMySQL角色权限策略&#xff1a;AliyunServiceRolePolicyForAnalyticDBForMySQL权限说明&#xff1a;{"Version": "1","Statement": [{"A…

分布式存储首选,浪潮商用机器FP5466G2服务器测评分析

戳蓝字“CSDN云计算”关注我们哦&#xff01;如今随着信息时代的到来&#xff0c;以云计算、大数据、人工智能为代表的新晋技术与应用实现了爆发式的增长&#xff0c;随之而来促生了原本存在于各个行业的大量业务应用中PB级&#xff0c;甚至EB级的海量版数据信息&#xff0c;这…

centos7常用工具安装手册

centos7常用工具安装手册 文章目录1. CentOS 7安装 ifconfig2. CentOS 7 上安装vim3. centos7 安装wget4. CentOS7下zip解压和unzip压缩文件5. CentOS 安装rz和sz命令 lrzsz5.1. 首先安装lrzsz5.2. 上传文件&#xff0c;执行命令rz&#xff0c;会跳出文件选择窗口&#xff0c;选…

pipelines mysql_Scrapy爬取豆瓣图书数据并写入MySQL

介绍本篇涉及的内容主要是获取分类下的所有图书数据&#xff0c;并写入MySQL准备Python3.6、Scrapy、Twisted、MySQLdb等演示代码一、创建项目scrapy startproject BookSpider #创建项目scrapy genspider douban book.douban.com #创建豆瓣爬虫二、创建测试类(main.py)from scr…

java 中的原始类型与原始封装类型

Java 提供两种不同的类型&#xff1a;引用类型和原始类型&#xff08;或内置类型&#xff09; 文章目录一、原始与对应的封装类二、引用类型和原始类型的区别:三、总结:比如: Int是java的原始数据类型&#xff0c;Integer是java为int提供的封装类。 一、原始与对应的封装类 J…

独行速众行远,BitTitan携手世纪互联蓝云助力用户数据完美迁移

戳蓝字“CSDN云计算”关注我们哦&#xff01;近日&#xff0c;Saas解决方案提供商BitTitan宣布&#xff0c;将拓展与世纪互联蓝云的合作&#xff0c;双方将在中国的云服务市场上线BitTitan广受欢迎的MigrationWiz用户数据迁移套装方案。BitTitan是一家致力于让IT专业人员通过自…

python字符串的内部函数_Python中字符串中内置函数

字符串内置函数len () 返回字符串长度如&#xff1a;age 31415926print(len(age))输出&#xff1a;长度8string.encode ("utf-8") 指定字符串编码格式如&#xff1a;name "张三"name.encode ("utf-8")string.count (str) 返回str在string中里面…

Kafka精华问答 | 为什么要用Message Queue?

Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性&#xff0c;但是在设计实现上完全不同&#xff0c;此外它并不是JMS规范的实现。今天就让我们一起来看看关于Kafka 的精华问答吧。1Q&#xff1a;Kafka的主要功能是什么&#xff1f;…

String类、StringBuffer类、StringBuilder类的区别

String是Java中基础且重要的类&#xff0c;并且String也是Immutable类的典型实现&#xff0c;被声明为final class&#xff0c;除了hash这个属性其它属性都声明为final,因为它的不可变性&#xff0c;所以例如拼接字符串时候会产生很多无用的中间对象&#xff0c;如果频繁的进行…

360深度实践:Flink与Storm协议级对比

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 张馨予 来源 | 高可用架构作者 张馨予&#xff0c;360 大数据计算平台负责人。北京邮电大学硕士&#xff0c;2015年加入360系统部&#xff0c;一直致力于公司大数据计算平台的易用性、稳定性和性能优化的研发工作。目前主要负…

Spring Cloud Alibaba 雪崩效应和容错解决方案

Spring Cloud Alibaba 雪崩效应和容错解决方案 文章目录1. 雪崩效应1.1. 举个例子&#xff1a;2. 常见的容错方案&#xff1a;2.1.超时&#xff1a;2.2. 限流&#xff1a;2.3. 仓壁模式&#xff1a;2.3.1. 现实中的仓壁模式&#xff1a;2.3.2. 软件中的仓壁模式&#xff1a;2.4…

layui获得列表json数据_golang实战开发之博客功能篇:文章列表的读取与展示和分类筛选展示处理...

前面我们介绍了文章详情页面的展示的逻辑代码实现&#xff0c;这一节&#xff0c;我们将继续讲解文章列表的读取和展示、文章根据分类进行筛选、最新文章、热门文章等的调用处理逻辑。首先&#xff0c;我们先编写文章列表页的前端代码。这里&#xff0c;我们文章采用类似WordPr…

“智企云中享“,首届SAP中国云大会召开

2019 年 6 月 5 日&#xff0c;上海讯— 今日&#xff0c;首届SAP云大会在上海盛大召开。作为SAP云计算家族在中国的首秀&#xff0c;大会全面呈现了SAP云业务的战略、产品、商业场景、浸入式体验。作为体验管理领域的领导者&#xff0c;SAP以覆盖企业运营全价值链的云服务解决…