Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4154|回复: 12

[已解决]EXCEL无法刷新,

[复制链接]
发表于 2013-5-3 18:06 | 显示全部楼层 |阅读模式
我把一个工作薄里的4个表用SQL语句做了个数据透视表进销存,可是保存好以后,然后关闭,再打开,点刷新就提提下面的问题,   如果缩小窗口在放大就能刷新了,好像中邪了,求帮助
最佳答案
2013-5-3 19:45
(, 下载次数: 2)
0V~LXZJ]OD~W%0MAS9J7ACG.jpg

华林手机卖场.zip

13.86 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-5-3 18:44 | 显示全部楼层
你文件没有放在D盘的根目录下吧?

我下了,放在D盘根目录下,刷新正常。
里面的连接字符串给固定了。
回复

使用道具 举报

 楼主| 发表于 2013-5-3 18:56 | 显示全部楼层
hwc2ycy 发表于 2013-5-3 18:44
你文件没有放在D盘的根目录下吧?

我下了,放在D盘根目录下,刷新正常。

我放在了D盘了啊,怎么改连接字符串啊,
回复

使用道具 举报

 楼主| 发表于 2013-5-3 18:57 | 显示全部楼层
hwc2ycy 发表于 2013-5-3 18:44
你文件没有放在D盘的根目录下吧?

我下了,放在D盘根目录下,刷新正常。

您关闭以后再打开刷新的吗,,,那我这是什么原因啊
回复

使用道具 举报

发表于 2013-5-3 19:07 | 显示全部楼层
gaofenglaoda1 发表于 2013-5-3 18:57
您关闭以后再打开刷新的吗,,,那我这是什么原因啊

你看一下                有问题么

华林手机卖场.rar

17.64 KB, 下载次数: 7

回复

使用道具 举报

发表于 2013-5-3 19:08 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-5-3 19:10 编辑
  1. Sub test()
  2.     Dim cnn As Object
  3.     For Each cnn In ThisWorkbook.Connections
  4.         With cnn
  5.             Select Case .Type
  6.                 Case xlConnectionTypeODBC:
  7.                     .ODBCConnection.Connection = ChangeConnection(.ODBCConnection.Connection)
  8.                     .ODBCConnection.SourceDataFile = ThisWorkbook.FullName
  9.                 Case xlConnectionTypeOLEDB:
  10.                     .OLEDBConnection.Connection = ChangeConnection(.OLEDBConnection.Connection)
  11.                     .OLEDBConnection.SourceDataFile = ThisWorkbook.FullName
  12.             End Select
  13.         End With
  14.     Next
  15. End Sub

  16. Function ChangeConnection(conn As String) As String
  17.     Dim iPos As Integer
  18.     iPos = InStr(conn, "Data Source=")
  19.     ChangeConnection = Left(conn, iPos - 1) & "Data Source=" & ThisWorkbook.FullName & Mid(conn, InStr(iPos, conn, ";"))
  20. End Function

  21. Private Sub Workbook_Open()
  22.     Call test
  23. End Sub
复制代码
回复

使用道具 举报

发表于 2013-5-3 19:09 | 显示全部楼层
测试了,代码自动修正文件位置,不用担心保存位置后无法刷新。
回复

使用道具 举报

发表于 2013-5-3 19:17 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-5-3 19:21 编辑

简化下
  1. Option Explicit

  2. Sub test()
  3.     Dim cnn As Object
  4.     Dim cnnSub As Object

  5.     For Each cnn In ThisWorkbook.Connections
  6.         With cnn
  7.             Select Case .Type
  8.                 Case xlConnectionTypeODBC:
  9.                     Set cnnSub = .ODBCConnection
  10.                 Case xlConnectionTypeOLEDB:
  11.                     Set cnnSub = .OLEDBConnection
  12.             End Select
  13.             With cnnSub
  14.                 .Connection = ChangeConnection(.Connection)
  15.                 .SourceDataFile = ThisWorkbook.FullName
  16.             End With
  17.         End With
  18.     Next
  19. End Sub

  20. Function ChangeConnection(conn As String) As String
  21.     Dim iPos As Integer
  22.     iPos = InStr(conn, "Data Source=")
  23.     ChangeConnection = Left(conn, iPos - 1) & "Data Source=" & ThisWorkbook.FullName & Mid(conn, InStr(iPos, conn, ";"))
  24.     'Debug.Print ChangeConnection
  25. End Function

  26. Private Sub Workbook_Open()
  27.     Call test
  28. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-5-3 19:25 | 显示全部楼层
云影 发表于 2013-5-3 19:07
你看一下                有问题么

你做好的,和我的路劲不一样,不行,白做
0)T]M6$$47}P16@CW`PCOXR.jpg
回复

使用道具 举报

 楼主| 发表于 2013-5-3 19:34 | 显示全部楼层
hwc2ycy 发表于 2013-5-3 19:17
简化下

不知道什么原因至情执行不了,,哎,我放到了this work book里了,.SourceDataFile = ThisWorkbook.FullName 这句执行不了,,难道必须的写VBA吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 10:16 , Processed in 0.290041 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表