• 2

HYPERLINK拜託幫幫忙

先謝謝各位的幫忙,我努力地去瞭解各位大大的內容,無奈我真的不是這塊料,這份表格雖說是我做的,但也是參閱別人的寫法,拼拼湊湊完成的,現在只差連結這個部分,實不相瞞,已經一個多月了,還沒辦法完成.....再次附上表格,已直接用內建的超連結,希望大大們能提供意,另snare大哥所提的用圖案顯示,我也想過用TextBox(查詢表單)叫出儲存格查看原因 ,添加新的原因進度再儲存,但只是想想,畢竟對我這種門外漢來講......實在太難了[點擊下載]
沒殼的螃蟹 wrote:
先謝謝各位的幫忙,我...(恕刪)

snare大大Popup的方式很好,你可以用這種方式去做原因顯示,再用右鍵的方式呼叫TextBox去做修改,比較方便。

圖片點進去才看得到作動,參考一下。
小小尉 wrote:
snare大大Popup...(恕刪)

謝謝,感覺真的很棒,可惜snare大哥給的程式碼,我完全看不懂......我也有請我姪女幫忙,她說學校沒教那麼難的,只有教一般的函數.....我等假日再上網慢慢研究每個字的用意,謝謝你們不吝的撥空幫忙,由衷感謝再感謝
小小尉 wrote:
snare大大Popup...(恕刪)

對了,剛剛忘了問,你的方式可否也借我參考一下?感恩
沒殼的螃蟹 wrote:
謝謝,感覺真的很棒,...(恕刪)

學校一般都只教比較基礎的?!...我也不是學相關科系,不太清楚


沒殼的螃蟹 wrote:
對了,剛剛忘了問,你...(恕刪)

可以喔!請參考檔案[點擊下載]
我有發現你上方有查詢表單的功能,我想原本應該是要做一樣的事情吧?!我有修改了一下,你可以兩種方式都參考,如果有疑問可以站內信給我
小小尉 wrote:
可以喔!請參考檔案...(恕刪)


您真好心,幾乎改完了,我就做不到,最多只會給個範例

因為您圖形高度比較高,這2行要修改如下,調整一下圖形箭頭(尾巴)的位置
如果選的圖形沒箭頭(尾巴),第2行可以省略
If Target.Top < 150 Then y = 5 Else y = Target.Top - 150
If y = 5 Then .Adjustments.Item(2) = Choose(Target.Row, 0, 0, 0, 0.055, 0.231, 0.399, 0.555, 0.695)

Adjustments 物件,請參考
https://docs.microsoft.com/zh-tw/office/vba/api/excel.adjustments

如果不介意趣味性太高,也可以用圖形+msgbox代替輸入修改用,可省略一個表單
10樓範例修改如下,請參考




'
'程式碼放在工作表1
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Static h As Boolean
Static old_data As String
Static old_row As Integer
Dim Answer As Long

If h = True Then
If Worksheets("工作表1").Shapes("arrow").TextFrame.Characters.Text <> old_data Then
'If old_data = "error" Then MsgBox "No data to update"
'Debug.Print Worksheets("工作表1").Shapes("arrow").TextFrame.Characters.Text, old_data
Answer = MsgBox("Updating Data ???", vbOKCancel, "report")
Debug.Print Answer
If Answer = vbOK And old_data <> "error" Then
Worksheets("工作表2").Cells(old_row, 2).Value = Worksheets("工作表1").Shapes("arrow").TextFrame.Characters.Text
Else
'Debug.Print "cancel"
End If
End If

Worksheets("工作表1").Shapes("arrow").Delete
h = False
End If

On Error Resume Next
Dim check As Range, HighLight As Shape, Data As String, x As Integer, y As Integer

If Target.Column = 2 And Target.Interior.Color = vbRed And Target.Count = 1 Then

Set check = Worksheets("工作表2").Columns("a").Find(What:=Target.Value)

If check Is Nothing Then
Data = "error"
Else
Data = Worksheets("工作表2").Cells(check.Row, 2).Value
End If

old_data = Data
old_row = check.Row

x = Target.Left + 70
If Target.Top < 100 Then y = 5 Else y = Target.Top - 100

If Data <> "" Then
Set HighLight = Worksheets("工作表1").Shapes.AddShape(msoShapeCloudCallout, x, y, 260, 100)
h = True

With HighLight
.Fill.ForeColor.RGB = vbGreen
.TextFrame.Characters.Text = Data
.TextFrame.Characters.Font.Color = vbRed
.TextFrame.Characters.Font.Bold = msoTrue
.TextFrame.Characters.Font.Size = 24
.Adjustments.Item(1) = -0.55
If y = 5 Then .Adjustments.Item(2) = Choose(Target.Row, -0.419, -0.269, -0.119, 0.055, 0.199, 0.367, 0.523)
.Name = "arrow"
End With
End If

End If

Set check = Nothing

End Sub

snare wrote:
您真好心,幾乎改完了...(恕刪)

剛好有點時間,看樓主卡一個月,想必都快失去鬥志,因為我也不是很熟這塊,只是當作練習,您提供的資料都很實用呢
圖形高度是我調高的,怕內文太多下面會被截掉,我也有注意到尾巴的問題,有稍微試著調過,但不是很會調就沒繼續處理
小小尉 wrote:
學校一般都只教比較基...(恕刪)

真的不知道該怎麼感謝你,原本還在傷腦筋該怎麼修改,如同snare大所說的,你真的是一個好心的人。
依你的檔案,做了些許的修改,已可以使用,預計星期1開始將資料都轉到這個表格當中。
相信應該有很多人,因為你們的好心,讓我們這一群不懂VBA的人工作變得更順暢了,在此由衷感謝。[點擊下載]
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?